アプリにいくつかの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スタイルは本当に必要ありません。