2011-05-19 52 views
1

所以我有一個ListView,它根據列表中每個項目的優先級對圖標進行顏色編碼。例如,優先級1工作單位有一個紅色工單圖標。優先級2 =黃色等ImageView.setColorFilter的NoSuchMethod錯誤

我使用ImageView.setColorFilter(Color.whatever)來改變圖標的​​顏色,它在我的三星Galaxy Tab和HTC Hero上效果很好,但是當我將應用程序加載到HTC Droid Eris,我得到一個錯誤:

java.lang.NoSuchMethodError:android.widget.ImageView.setColorFilter 

我不知道爲什麼它可以在其他任何工作正常,但不是這款手機。有任何想法嗎?我想也許這可能是由於Eris擁有Android 2.1而其餘的是2.2或更高。但我不認爲這種基本方法在2.2之前是不包含的!

任何和所有的幫助,非常感謝!當我陷入困境時,這個社區總是會有幫助,Google不會回吐任何相關結果!提前致謝!

回答

4

如果你看一下documentation和API版本篩選,你會看到,這個過載:

void setColorFilter(int color) 

在API版本8,這就是Android 2.2中引入的。

不過,也有較早前支持其他重載:

void setColorFilter(ColorFilter cf) 
void setColorFilter(int color, PorterDuff.Mode mode) 

你能使用這些內容之一嗎?

+0

完美!謝謝!我自己剛剛遇到它,因爲我收到了電子郵件,說你已發佈回覆!感謝您的快速反饋!試圖跟蹤每個版本發佈的版本是非常糟糕的(目前這是唯一一種阻止我發佈API級別爲7的應用程序的方法,因此我可能只需更改它) – 2011-05-19 12:39:52

1

setColorFilter(int color)在API級別8(版本2.2)中引入。

setColorFilter還有兩個版本,從版本1.0開始存在,也許你可以使用它們呢?

+0

謝謝!我將使用(int color,PorterDuff.Mode模式)方法。我接受Jon Skeet的回答,只是因爲他發佈得更快,但我絕對讚賞這種幫助! – 2011-05-19 12:45:20