有用的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 )提供了本地化的stringandroid.R.string.ok )等string。

你推荐使用什么其他系统资源? 或者有没有理由避免使用系统资源?

编辑:正如托马斯指出的,这些资源中的一些可能不会产生你期望的结果(尤其是android.R.string.yes/no返回OK/Cancel而不是Yes/No ,正如这里所报道的那样)。 为了更好地控制,您可以从Android源代码复制系统资源。

您可以在android包中find所有系统资源的完整列表。

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

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

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

你可以从xml中访问系统资源 ,通过使用android软件包的名字进行限定,比如"@android:string/ok"

正如CommonsWare所提到的,您不必下载Android源代码库来检查资源; 只要到<android-sdk-dir>/platforms/android-XX/data/res/ 。 但是,如果你开始使用这些,你很快就会失望地发现,它们大部分都不能通过 android.R类获得。 大多数情况下,我必须将它们导入Eclipse工作区。 🙁

我最喜欢的资源是根据控件的焦点/按下/禁用状态显示不同的drawable(如android.R.drawable.btn_default)。 我使用这些或调整他们为我的应用程序创build自定义button。 正如你所看到的,如果你看看/data/res/drawable/btn_default.xml ,它们被定义为一个<selector> XML元素,它在运行时被充入到StateListDrawable中。 你也可以创build你自己的StateListDrawables,它们是非常有用的,既可以作为View背景,也可以作为一个button的“复合绘制”(参见TextView.setCompoundDrawables() )。

请注意,翻译是非常糟糕的。

例如,Android-25中的德语“否”是“Abbrechen”,其实际上意味着“取消”。 “是”被翻译为“OK”…

我不确定其他语言有多好,所以我会使用自己的翻译。