我正在尝试使用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用作图标而不是背景?我应该将它复制到我的资源文件夹中并以这种方式使用吗?
答案 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)
吗?否则,请尝试将资源复制到本地目录,看看是否有效。