2017-08-28 74 views
0

我想在StatusBar下顯示天氣狀況和溫度圖標。Android如何在使用gradle構建期間從外部文件夾添加drawable

我已經產生了幾千,我將設置NotificationBuilder爲小圖標的所有可能的組合,因爲它只能與繪製資源工作(你必須指定res id

不過,我不知道想要在我的可繪製文件夾中繪製所有可繪製的文件以保持其清潔。

此外,我不希望Android Studio看到可繪製的,因爲它開始滯後。

在構建應用程序期間是否可以從某些外部存儲添加這些圖標?

注:

main.res.srcDirs +=選項不會幫助,因爲AndroidStudio將展示他們繪製文件夾下。

對我來說,在開發過程中,Android Studio不會看到R ids用於相應的可繪製對象,因爲我使用Resources.getIdentifier(resurseName, "drawable", appPackageName)以獲得標識。

+0

「因爲它只能用drawable res工作」 - 或者,將您的應用程序限制爲Android 7.0+,您可以在其中使用Icon。或者,將此特定功能限制爲Android 7.0+,爲舊設備執行其他操作。 – CommonsWare

+0

我不想限制某些用戶的功能。這將是非常好的找到Android 4.4 + –

+0

解決方法有什麼辦法如何在構建期間移動drawable(也許合併資源)? –

回答

1

可以節省您大量的工作和資源文件,如果你使用Notification.Builder#setSmallIcon(int icon, int level)方法,例如考慮XML資源文件:

RES /繪製/ sun.xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/icon_sun"/> 
    <item> 
     <level-list> 
      <item android:maxLevel="0" android:drawable="@drawable/minus20"/> 
      ... 
      <item android:maxLevel="60" android:drawable="@drawable/plus40"/> 
     </level-list> 
    </item> 
</layer-list> 

現在你可以調用setSmallIcon(R.drawable.sun, level)其中level == 0表示-20度,level == 60表示40度,如果您有X天氣條件(太陽,雲,雨,雪,風暴等)和Y溫度,則需要X xmls + X pngs + Y pngs = 2 * X + Y文件,在您的解決方案中,您需要X * Y文件

相關問題