アプリにいくつかのImageButtonがあり、デフォルトの灰色の背景を削除しました
android:background="@android:color/transparent"またandroid:background="@null"
問題は、onClickハイライトの背景(API8ではオレンジ、API16では青)も削除されることです。
ここでたくさんのQ&Aを読んだので、みんなが使用を提案してselectorいます。ボタンごとに別の画像を作成するのではなく、背景色のみを強調表示したいと思います。これを達成する簡単な方法はありますか?
解決策:プログラムで
android.view.Viewをインポートします。
import android.view.View.OnTouchListener;
//..。
btn.setOnTouchListener(new OnTouchListener(){
@オーバーライド
public boolean onTouch(View v、MotionEvent event){
if(event.getAction()==(MotionEvent.ACTION_DOWN)){
//背景のハイライト色を設定します
btn.setBackgroundResource(R.color.blue);
}
if(event.getAction()==(MotionEvent.ACTION_UP)){
//透明に復元
btn.setBackgroundResource(
getResources()。getColor(android.R.color.transparent));
}
falseを返します。
}
});
それはそれほど単純ではありませんが、仕事をして、ボタンごとに別の画像を作成する時間を大幅に節約しますが、派手なonclickスタイルは本当に必要ありません。