Android:无法将android.R.drawable用作TextView的背景图像

5

我试图将android.R.drawable stat_sys_download作为文本视图的背景图像使用,但它没有显示:

textview.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.stat_sys_download));

如果我使用不同的android.R.drawable,比如ic_menu_save,它就能正常工作:

textview.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.ic_menu_save));  

我可以在菜单选项中使用stat_sys_download作为图标,以此来确认它的存在:

menu.add(0, OPTION_MENU_SORTBY, 0, Str.TEXT_SORTBY).setIcon(android.R.drawable.stat_sys_download); 

那么为什么我可以把stat_sys_download用作图标,但不能用作背景?我应该将它复制到我的资源文件夹中并以这种方式使用吗?

如果将drawable.stat_sys_download复制到本地文件夹中,然后使用yourpackage.R.drawable.stat_sys_download会发生什么? - Gallal
2个回答

2

这里是来自Google状态栏图标UI指南的内容(同样适用于其他可绘制元素):

警告:由于这些资源在不同的平台版本中可能会发生变化,因此您不应使用Android平台资源ID(即android.R.drawable下的状态栏图标)引用这些图标。如果您想使用任何内部可绘制资源或图标,您应该将这些图标或可绘制资源的本地副本存储在您的应用程序资源中,然后从应用程序代码中引用本地副本。通过这种方式,即使系统的副本发生更改,您也可以控制图标的外观。


0

这很奇怪,但是ic_menu_save和stat_sys_download可能在格式上有所不同,导致了这个问题。你可以尝试使用setBackgroundResource(int resId)代替吗?否则,尝试将资源复制到本地目录中,看看是否有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接