4
A
回答
5
如果你看到你的9补丁图像上画了黑点,那是因为你还没有预编译您的图像。
要在运行时将9色块图像设置为背景,必须事先编译它们,当边框被移除并编码为PNG块时。
您可以通过在您的应用程序的res/drawable
文件夹中插入.9.png图像,编译它并生成.apk(在Eclipse上,右键单击您的project root > Android Tools > Export Unsigned Application Package
)来实现。然后解压缩.apk文件,您将获得带有9-patch编译数据的.9.png图像。
有了您的预编译的9补丁图像,做这样的事情来加载图像:
private Drawable loadNinePatch(String path, Context context) {
Bitmap bitmap = BitmapFactory.decodeFile(path);
byte[] chunk = bitmap.getNinePatchChunk();
if(NinePatch.isNinePatchChunk(chunk)) {
return new NinePatchDrawable(context.getResources(), bitmap, chunk, new Rect(), null);
} else return new BitmapDrawable(bitmap);
}
,然后将它设置为按钮的背景:
button.setBackgroundDrawable(loadNinePatch("/data/data/your.app/files/button_background.9.png", context));
+0
很棒的回答。为我节省了很多时间。 –
相关问题
- 1. Jtogglebutton动态设置背景
- 2. svg-edit - 动态设置背景
- 3. jQuery的blockUI设置动态背景imege
- 4. 动态设置GridLayout背景颜色Android
- 5. 动态设置textview背景颜色
- 6. 设置活动的背景
- 7. 9patch可绘制为RelativeLayout背景问题
- 8. 动态设置ListItem前景
- 9. 设置背景ACtionbarSherlock
- 10. Android设置背景
- 11. 设置背景值
- 12. 背景设置:Javascript
- 13. 设置ListView背景
- 14. 设置Imageview背景
- 15. Android动态背景
- 16. 将背景设置为背景
- 17. 设置背景或背景图片
- 18. 设置.xib启动图像背景的背景颜色
- 19. 从图库设置背景到所有活动背景
- 20. 设置背景图像后设置背景颜色
- 21. 设置背景颜色和设置图像在ImageButton背景 - Android
- 22. 设置活动背景不拉伸
- 23. 设置为背景的动画.GIF Android
- 24. 如何为背景设置动画?
- 25. 不能设置活动背景
- 26. 活动时设置背景颜色
- 27. 设置活动的背景颜色
- 28. 设置Android应用程序背景图片或动态壁纸
- 29. 在javascript中动态设置单元格背景
- 30. 根据动态内容设置背景图片?
不真的得到你想要问的这里 – XepterX
http://stackoverflow.com/q/5079868/543711 – iTurki
我需要在运行时更改Button的背景。背景是9Patch。当我这样做时,我发现9Patch不能正常工作 – Toochka