我一直在花費我的大腦超過一個小時,試圖找出爲什麼我的QuickSettings瓷磚沒有被基於Tile.STATE_ACTIVE和Tile.STATE_INACTIVE着色。我使用清單中設置的相同圖標,但是我在onStartListening中動態更改狀態。這在Android 7.1.1上工作正常。Android 7.1.2 QuickSettings瓷磚沒有着色
有沒有其他人注意到他們的QuickSettings瓷磚沒有被着色?
我一直在花費我的大腦超過一個小時,試圖找出爲什麼我的QuickSettings瓷磚沒有被基於Tile.STATE_ACTIVE和Tile.STATE_INACTIVE着色。我使用清單中設置的相同圖標,但是我在onStartListening中動態更改狀態。這在Android 7.1.1上工作正常。Android 7.1.2 QuickSettings瓷磚沒有着色
有沒有其他人注意到他們的QuickSettings瓷磚沒有被着色?
我有同樣的問題,而一切工作正常,直到7.1.1。 看起來這是從Android 7.1.2開始的。 我在本版本處於測試階段時觀察到同樣的行爲。我必須回滾到7.1.1才能正確測試我的應用程序,並且我確信這個問題將在最終的7.1.2版本中得到解決。但它沒有。 同樣的東西也可以用一些框架圖塊複製,比如顯示佈局界限和配置文件GPU渲染:這些圖塊不會反映開/關狀態。我不知道在7.1.2最終版本中如何明顯地忽略了這些東西。到目前爲止,我唯一想到的臨時解決方案是爲關閉狀態提供drawable,爲最終的apk添加更多資源。這不是一個解決方案,但至少它可以幫助更好地瞭解開/關狀態。
爲每個狀態顯式設置圖標,它會正確着色。您必須爲每個狀態使用不同的可繪製資源,否則它不會更改。幸運的是,它可以是完全相同的圖標。我剛剛複製ic_powersave_tile並將其重命名爲ic_powersave_tile2。我偶然發現了這一點,我的一個應用程序在7.1.2上工作,其中一個沒有,這就是唯一的區別。
private void setCurrentState(int state){
Tile tile = getQsTile();
if (tile == null)
return;
tile.setState(state);
switch (state){
case Tile.STATE_ACTIVE:
tile.setIcon(Icon.createWithResource(getApplicationContext(),
R.drawable.ic_powersave_tile));
break;
case Tile.STATE_INACTIVE:
tile.setIcon(Icon.createWithResource(getApplicationContext(),
R.drawable.ic_powersave_tile2));
break;
case Tile.STATE_UNAVAILABLE:
tile.setIcon(Icon.createWithResource(getApplicationContext(),
R.drawable.ic_powersave_tile));
break;
}
tile.updateTile();
}
在幾個月前提供關閉狀態可繪製的alpha通道後,意外地偶然發現了這篇文章。 @ Flar2你的發現解釋了爲什麼現在透明度設置在alpha通道中的瓷磚顯示比系統瓷磚的其他部分更亮,繪圖必須被緩存。它一直在竊聽我的生活。 –