通常のボタンは、押すと外観が変わります。ボタンを離した後も、この「押された」外観を維持するにはどうすればよいですか?
3 に答える
それを行うにはいくつかの方法があります。drawable ファイルとレイアウト ファイルを使用することをお勧めします。
たとえば、「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 と background という 2 つの重要なドローアブルがあります。それでは、そのファイルを作成しましょう
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>
得られたのは、押されていない状態の 2 つと押された状態の 2 つの 4 つの画像です。
次のプレビュー:
*押されていないボタン http://i.stack.imgur.com/UZMtt.png
*押されたボタン http://i.stack.imgur.com/1E0u4.png
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;
}
}
});
通常の ToggleButton の代わりに、押された後に状態を保存するToggleButtonを使用できます。
を使用して押されたテクスチャと押されていないテクスチャを割り当てるだけで、押されたselector
後に押されたテクスチャが保存されます。