我在编辑从NinePatchDrawable加载的Bitmap时遇到了问题。这是drawable(TabWidget的一部分可从Sherlock绘制 - drawable-mdpi / abs__list_pressed_holo_dark):http://imageshack.us/a/img839/4976/tgt6.png
我想改变除黑白像素之外的每一个像素:
int toColor = Color.Red;
Bitmap src = BitmapFactory.decodeResource(res, resId);
Bitmap bitmap = src.copy(Bitmap.Config.ARGB_8888, true);
for(int x = 0; x < bitmap.getWidth(); x++)
for(int y = 0; y < bitmap.getHeight(); y++){
if(pixel not black nor white){
bitmap.setPixel(x, y, toColor);
}
}
byte[] chunk = src.getNinePatchChunk();
return new NinePatchDrawable(res, bitmap, chunk, new Rect(), null);
所以......这段代码在Galaxy S2(Jelly Bean)上效果很好,但在Galaxy Ace 2(Gingerbread)上不起作用。新的drawable简单不会改变......问题是什么?
修改
上面的代码适用于另一个Sherlock NinePatchDrawable - abs__ab_transparent_light_holo(http://img802.imageshack.us/img802/7039/otb9.png)...,但不适用于第一个。我再说一遍:这只发生在姜饼上