在 android 个可绘制对象中定义常用样式
Define common styles in android drawables
我正在尝试为 android 中的列表项设置样式。我正在使用以下 xml 可绘制对象:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#882980b9"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#333498db"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#bdc3c7"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
</layer-list>
</item>
</selector>
如您所见,有些元素是重复的。有没有办法拉出常见的形状,使它们在两种状态下都可用,这样它们就只需要在一个地方更新?就像我们在 css?
中做的那样
.normal {
/* common styles */
}
.normal:hover {
/* only overriding/extra styles */
}
这可能吗?
您可以将形状可绘制对象放入单独的文件中,并从您的图层列表项中引用。
项目有一个 android:drawable="" 属性。
看这里:
http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList
我正在尝试为 android 中的列表项设置样式。我正在使用以下 xml 可绘制对象:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#882980b9"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#333498db"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
</layer-list>
</item>
<item>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#bdc3c7"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
<item android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"></solid>
<corners android:radius="@dimen/margin"></corners>
</shape>
</item>
</layer-list>
</item>
</selector>
如您所见,有些元素是重复的。有没有办法拉出常见的形状,使它们在两种状态下都可用,这样它们就只需要在一个地方更新?就像我们在 css?
中做的那样.normal {
/* common styles */
}
.normal:hover {
/* only overriding/extra styles */
}
这可能吗?
您可以将形状可绘制对象放入单独的文件中,并从您的图层列表项中引用。
项目有一个 android:drawable="" 属性。
看这里:
http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList