Android:不能使用android.R.drawable作为textview的背景图片

时间:2011-07-29 14:57:10

标签: android background textview drawable

我正在尝试使用android.R.drawable stat_sys_download作为文本视图的背景图片,但它没有显示出来:

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

如果我使用像ic_menu_save这样的其他android.R.drawable,它可以正常工作:

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用作图标而不是背景?我应该将它复制到我的资源文件夹中并以这种方式使用吗?

2 个答案:

答案 0 :(得分:2)

来自Google's UI Guidelines for Status Bar Icons(也可以应用于其他可绘制元素)

  

警告:因为这些资源可以在平台版本之间更改,   你不应该使用Android平台引用这些图标   资源ID(即android.R.drawable下的状态栏图标)。如果你   想要使用任何图标或其他内部可绘制资源,你应该   在您的应用程序中存储这些图标或drawable的本地副本   资源,然后从您的应用程序代码中引用本地副本。   这样,您就可以保持对外观的控制   图标,即使系统的副本发生变化。

答案 1 :(得分:0)

这很奇怪,尽管ic_menu_save和stat_sys_download之间的格式可能存在差异导致此问题。您可以尝试使用setBackgroundResource(int resId)吗?否则,请尝试将资源复制到本地目录,看看是否有效。