activity.onCreate() 中に textview の背景を設定した 9 パッチの画像があります。Textview には、高さ + 幅の両方に WRAP_CONTENT レイアウトがあります。XML からではなく、コードから作成されます。
_btnCurrent.setBackgroundResource(R.drawable.button_menu_off);
これはうまくいきます。同じサイズの別の 9 パッチ画像がありますが、違いは色だけです。後で他の画像で setBackgroundResource を呼び出すと、テキストビューの高さがほぼ 2 倍になります。この他の呼び出しは textview.onClick() から発生します
_btnCurrent.setBackgroundResource(R.drawable.button_menu_on);
もう一度呼び出しても(テキストビューでもう一度クリックしても)、効果はありません。これは良いことです。最初のクリックでも同じことが起こると思います。そう:
Activity.onCreate()
{
btnCurrent= new TextView(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
btnCurrent.setBackgroundResource(R.drawable.button_menu_hs_off);
btnCurrent.setPadding(15, 5, 15, 5);
btnCurrent.setGravity(Gravity.CENTER);
btnCurrent.setText( GetString(id) );
btnCurrent.setOnClickListener(this);
}
onClick()
{
_btnCurrent.setBackgroundResource(R.drawable.button_menu_on);
}
onCreate(); // -> called by Android during startup -> OK
....
onClick(); // called when user clicks on it -> btnCurrent has double height
....
onClick(); // called when user clicks again -> btnCurrent has same double height, no change in size
....
onClick(); // called when user clicks again -> btnCurrent has same double height, no change in size
_btnHSCurrent.setBackgroundResource(0); を設定しようとしました。新しい画像を設定する前に、しかし助けにはなりません。
なぜこれが起こるのですか?
@編集
私がやった: _btnCurrent.setBackgroundResource(R.drawable.button_menu_off); Activity.onCreate() 中。
次に、textview.onClick() で次のように呼び出します。
_btnCurrent.setBackgroundResource(R.drawable.button_menu_on);
これにより、高さが2倍になります。何度も何度もクリックしてもサイズは変わらず、最初のクリックだけです。