有用的Android系统资源

hpi*_*que 48 optimization resources android

Android附带了许多系统资源(android.R),可用于节省您的时间并使您的应用程序更轻松.

例如,我最近发现Android提供了Yes(android.R.string.yes),No(android.R.string.no),Cancel(android.R.string.cancel)和Ok(android.R.string.ok)以及其他字符串的本地化字符串.

您建议使用哪些其他系统资源?或者有理由避免使用系统资源吗?

编辑:作为由Tomas指出,一些这方面的资源可能不会产生你所期望的结果(特别是android.R.string.yes/no返回OK/Cancel代替Yes/No,如报告在这里).为了获得更好的控制,您可以从Android源代码中复制系统资源.

Dan*_*Lew 54

您可以在android包中找到所有系统资源的完整列表.

每次我想在Android上做一些事情我都会检查是否有一个涵盖我想要做的事情的系统资源.在搜索您可能需要的已实现资源时,导入Android源代码(特别是其/ res /文件夹)很有帮助,因此您可以看到它们的具体实现.

就个人而言,我发现自己经常使用:

  • 用于标准任务的内置Android布局,例如微调器下拉列表.
  • Android ids(android.R.id),因为如果你想使用Android的一些小部件,你经常需要使用它们(例如,如果要实现XML布局,则TabHost/TabWidget需要使用" android:id/tabhost"," android:id/tabs"和" android:id/tabcontent").
  • 特别是内置颜色android.R.color.transparent.
  • Android内置的淡入和淡出动画android.R.anim.

  • 请记住,这些资源随SDK一起提供.查看特定平台目录下的`data/res /`目录.我会小心重用OEM可能会改变的事情 - 可绘制的资源将是一个示例问题区域. (9认同)

eha*_*ell 17

您可以通过使用android包名称限定来自xml的系统资源,即"@android:string/ok"


Nei*_*aft 6

正如CommonsWare所提到的,您不必下载Android源代码库来检查资源; 去吧<android-sdk-dir>/platforms/android-X.X/data/res/.但是,如果你开始使用它们,很快就会发现它们中的大多数都不能android.R课堂上使用.大多数时候我必须将它们导入我的Eclipse工作区.:-(

我最喜欢的资源是基于控件的聚焦/按下/禁用状态(如android.R.drawable.btn_default)显示不同的drawable.我使用它们或调整它们为我的应用程序创建自定义按钮.正如您所看到的那样/data/res/drawable/btn_default.xml,它们被定义为<selector>XML元素,它StateListDrawable在运行时被夸大.您还可以创建自己的StateListDrawables,它们非常有用,包括View背景和按钮的"复合绘图"(请参阅​​参考资料TextView.setCompoundDrawables()).