在Android应用程序中,设计具有背最图片的按钮,并且根据按钮的状态显示不同的背景图片。
时间: 2024-05-12 07:19:06 浏览: 118
android显示图片
要实现具有背景图片的按钮并根据按钮状态显示不同的背景图片,可以使用以下步骤:
1. 在XML布局文件中添加ImageButton控件,并设置背景图片和初始状态的背景图片。
```xml
<ImageButton
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_bg"
android:src="@drawable/button_icon"
android:state_pressed="false"
android:state_selected="false"
android:state_enabled="true" />
```
2. 在Java代码中获取ImageButton控件,并为其添加状态监听器。
```java
ImageButton myButton = findViewById(R.id.my_button);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 按钮点击事件
}
});
myButton.setOnStateChangeListener(new StateListDrawable.OnStateChangeListener() {
@Override
public void onStateChange(StateListDrawable drawable) {
if (drawable.getCurrent().getConstantState() == getResources().getDrawable(R.drawable.button_bg_pressed).getConstantState()) {
// 按钮被按下时的背景图片
} else if (drawable.getCurrent().getConstantState() == getResources().getDrawable(R.drawable.button_bg_selected).getConstantState()) {
// 按钮被选中时的背景图片
} else {
// 按钮正常状态的背景图片
}
}
});
```
3. 在res/drawable文件夹下添加三张不同状态下的背景图片,分别命名为button_bg.xml、button_bg_pressed.xml和button_bg_selected.xml。
button_bg.xml:
```xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/button_bg_selected" android:state_selected="true" />
<item android:drawable="@drawable/button_bg_normal" />
</selector>
```
button_bg_pressed.xml:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FF0000" />
<corners android:radius="5dp" />
</shape>
```
button_bg_selected.xml:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#00FF00" />
<corners android:radius="5dp" />
</shape>
```
button_bg_normal.xml:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#0000FF" />
<corners android:radius="5dp" />
</shape>
```
这样,在Android应用程序中设计具有背景图片的按钮,并根据按钮状态显示不同的背景图片就完成了。
阅读全文