android使用系统资源,链接当前主题中的Style

使用系统资源

Android本体应用程序具体化了很多自己的资源,各种各样的字符串、图片、动画、样式和布局等都可以在你的应用程序中使用。

在代码中使用系统资源和使用你自己的资源一样。不同的是,使用android.R类来使用本体的android资源,而不是使用应用程序指定的R类。下面的代码片段给出了在应用程序上下文中返回一个系统的错误消息字符串:

CharSequence httpError = getString(android.R.string.httpErrorBadUrl);

在XML中使用系统资源,指定android包名,如下的XML片段所示:

<EditText

android:id=”@+id/myEditText”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”@android:string/httpErrorBadUrl”

android:textColor=”@android:color/darker_gray”

/>

链接当前主题中的Style

Theme是保证应用程序UI一致性最佳的方法。Android为使用当前主题中的style提供了捷径,而不是完全的定义每一个style。

要做到这个,你需要在你想要使用的资源前加“?android:”前缀而不是“@”。接下来的例子再次给出了上面代码的片段,但是使用的是当前主题的textColor,而不是引用系统的资源:

<EditText

android:id=”@+id/myEditText”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”@string/stop_message”

android:textColor=”?android:textColor”

/>

这个技巧帮助你创建随着主题变化而变化的style,而不必单独更改每一个style资源。

原文地址:https://www.cnblogs.com/suizhikuo/p/3114062.html