【发布时间】:2015-01-03 22:20:10
【问题描述】:
我想给按钮添加一些点击效果,所以我定义了一个可绘制的 b1.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#cf00" />
</shape>
</item>
<item>
<shape>
<solid
android:color="#f00" />
</shape>
</item>
</selector>
然后我将它应用到按钮背景
<Button
android:id="@+id/main_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="btn"
android:background="@drawable/b1"
android:textColor="#fff"
android:textSize="15sp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:padding="10dp"
android:gravity="center"
/>
但应用中有超过 20 种不同颜色的按钮,我不想为每个按钮创建很多可绘制对象。如果我在背景中使用可绘制对象,则无法为此类按钮设置背景颜色。如果我在背景中使用颜色,则无法将可绘制设置为此类按钮。
我可以定义一个drawable只有按下的样式吗?当按下按钮时,为按钮添加一些透明。同时,我可以为每个按钮定义不同的颜色。
【问题讨论】:
标签: android android-button android-drawable android-selector