常规按钮在按下时会改变其外观。即使在按钮被释放后,我如何才能保持按钮上的这种“按下”外观?
问问题
3629 次
3 回答
1
如果您不想使用 ToggleButton,可能的解决方案是在 onClickListener 中设置布尔值
private boolean isPressed = false;
mYourButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(){
if(isPressed==false){
mYourButton.setBackgroundResource(R.drawable.your_pressed_image);
isPressed=true;
}else if(isPressed==true){
mYourButton.setBackgroundResource(R.drawable.your_default_image);
isPressed=false;
}
}
});
于 2013-06-24T11:43:16.383 回答
1
有办法做到这一点,我建议通过可绘制和布局文件。
例如,您有一个视图,其中有一个“ SEND ”或“ FINISH BUTTON ”,因此文件夹布局中的视图如下所示:
<ImageButton
android:id="@+id/btnIdNext"
android:contentDescription="@string/someDescriptionOfImage"
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
android:src="@drawable/buttons_src"
android:background="@drawable/buttons"
android:onClick="someaction" />
如您所见,您有两个重要的可绘制对象,即 src 和背景。所以,让我们创建这些文件
在drawable文件夹中,我们创建buttons_src.xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/finalizar_active" android:state_pressed="true"/>
<item android:drawable="@drawable/finalizar"/>
</selector>
在drawable文件夹中,我们也创建了buttons.xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_purple_active" android:state_pressed="true"/>
<item android:drawable="@drawable/bg_purple"/>
</selector>
我们得到的是四个图像,两个用于未按下状态,两个用于按下状态。
接下来预览:
于 2013-08-12T20:31:20.410 回答
0
您可以使用ToggleButton而不是常规按钮,它会在按下后保存状态。
只需使用 a 为其分配按下和未按下的selector
纹理,按下后它会保存按下的纹理。
于 2013-06-24T11:40:25.900 回答