帮我安卓用Java实现LinerLayout按钮,选中时,按钮图片和文字变成蓝色,不选中时,按钮图片和文字变成灰色
时间: 2023-04-11 22:00:26 浏览: 242
好的,我可以回答这个问题。您可以使用Selector来实现这个效果。Selector是一个XML文件,可以定义不同状态下的按钮样式。以下是一个示例:
1. 创建一个名为button_selector.xml的XML文件,将其放在res/drawable目录下。
2. 在button_selector.xml中添加以下代码:
```
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/blue_button" android:state_pressed="true"/>
<item android:drawable="@drawable/gray_button"/>
</selector>
```
3. 在布局文件中使用LinearLayout和Button来创建按钮,如下所示:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:background="@drawable/button_selector"
android:textColor="@drawable/button_text_selector"/>
</LinearLayout>
```
4. 创建一个名为button_text_selector.xml的XML文件,将其放在res/color目录下。
5. 在button_text_selector.xml中添加以下代码:
```
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/blue" android:state_pressed="true"/>
<item android:color="@color/gray"/>
</selector>
```
6. 在colors.xml中定义蓝色和灰色的颜色值,如下所示:
```
<resources>
<color name="blue">#0000FF</color>
<color name="gray">#808080</color>
</resources>
```
这样,当按钮被选中时,按钮的背景和文字颜色将变为蓝色,否则将变为灰色。
阅读全文