使用主题属性
另外一种资源值允许你引用当前主题中的属性的值。这个属性值只能在样式资源和XML属性中使用;它允许你通过将它们改变为当前主题提供的标准变化来改变UI元素的外观,而不是提供具体的值。
如例中所示,我们在布局资源中使用这个特性将文本颜色设定为标准颜色的一种,这些标准的颜色都是定义在基本系统主题中:
<?xml version="1.0" encoding="utf-8"?>
<EditText id="text"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:textColor="?android:textDisabledColor"
android:text="@string/hello_world" />
注意,这和资源引用非常类似,除了我们使用一个“?”前缀代替了“@”。当你使用这个标记时,你就提供了属性资源的名称,它将会在主题中被查找——因为资源工具知道需要的属性资源,所以你不需要显式声明这个类型(如果声明,其形式就是?android:attr/android:textDisabledColor)。
除了使用这个资源的标识符来查询主题中的值代替原始的资源,在这里关于该类型的name语法:?[namespace:]typpe/name和“@”形式一样,也是可选。
分享到:
相关推荐
android:attr/progressBarStyleLarge"`,可以得到一个更大的圆形`ProgressBar`。在XML布局文件中的定义如下: ```xml android:id="@+id/widget196" android:layout_width="wrap_content" android:layout_...
android:attr/borderlessButtonStyle"`,Button会采用无边框的样式,从而消除阴影。但这种方法的缺点在于,如果已经在样式表中为Button定义了一个独立的style,并且想在多个地方复用,那么直接在XML布局中添加style...
android:attr/progressBarStyleHorizontal"`定义了一个水平的进度条,`android:max`属性指定了最大值,这里是200。另外,`android:visibility`属性用于控制进度条的可见性,`gone`和`invisible`都可以使进度条不可见...
android:attr/progressBarStyleLarge"` - **XML 定义**: ```xml android:id="@+id/widget196" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/...
android:attr/progressBarStyleHorizontal" android:layout_gravity="center_vertical" android:max="100" android:progress="50" /> ``` #### 三、不同样式的圆形进度条 文档中提到了几种不同样式的圆形进度条...
android:attr/progressBarStyleHorizontal"`属性: ```xml android:id="@+id/progressBarHorizontal" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout...
//之前使用的是3.5.2版本,升级成3.6.2后就出现了上面的错误, //还原成原来版本问题消失。 //猜测是gradle3.6.2版本存在问题。 classpath 'com.android.tools.build:gradle:3.6.2' } } 反思 项目出现问题
android:attr/progressBarStyleSmall"`或`style="?android:attr/progressBarStyleLarge"`可以创建小号或大号的圆形进度条,也可以自定义颜色和大小。 3. **旋转进度条**:使用`style="?android:attr/...
android:attr/selectableItemBackgroundBorderless`或`?android:attr/selectableItemBackground`来轻松实现水波纹效果。 具体实现水波纹效果的方法有以下几种: 1. 使用Theme: 在应用的主题中设置`...
android:attr/progressBarStyleSmallIndeterminate" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ``` **5. 自定义样式** 除了系统提供的样式外,还可以通过自定义Drawable来...
android:attr/progressBarStyleSmall"/> android:id="@+id/pull_to_refresh_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dip" android:...
android:attr/progressBarStyleLarge"`,而圆形进度条则使用`style="?android:attr/progressBarStyleHorizontal"`并配合`android:indeterminate="true"`来实现。 要更改进度条的样式,主要涉及到以下几个方面: 1....
android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="50" /> ``` 如果你需要圆形进度条,可以使用`android:...
android:attr/progressBarStyleHorizontal" /> ``` 2. **颜色自定义** 进度条的颜色可以通过修改`android:progressDrawable`属性来自定义。可以创建一个XML资源文件,如`res/drawable/progress_drawable.xml`,并...
android:attr/colorControlHighlight"> <item android:id="@android:id/mask"> <color android:color="@android:color/white" /> </item> <!-- Your background drawable here --> </selector> </item> </...
android:attr/progressBarStyleHorizontal"`表示使用水平样式,`android:max`设置最大值,通常为100,代表100%的进度。 二、Kotlin与ProgressBar交互 在Kotlin代码中,我们可以获取到ProgressBar的引用并控制其进度...
android:attr/selectableItemBackgroundBorderless`引用的就是RippleDrawable,它可以提供无边框的点击反馈效果。如果你想要自定义颜色和形状,可以创建一个drawable资源文件: ```xml <ripple xmlns:android=...
android:attr/textColorLink"`设置了链接文本的颜色。 ### Java源代码实现 如果我们希望在运行时动态添加超链接,可以使用`SpannableString`和`Linkify`类。首先,我们需要创建一个`SpannableString`对象,并使用`...
attr/selectableItemBackground"`属性或者`android:foreground="?attr/selectableItemBackgroundBorderless"`(无边框效果)。这两个属性会自动创建一个触摸反馈层,当用户点击或触摸时,就会显示出水波纹效果。 ...