私の Android アプリケーションでは、アイコンがよりよく表示されるように、オプション メニューの背景を白くしたいと考えています。これを行う多くのアプリを見てきましたが、これを行う方法がわかりません。
4182 次
2 に答える
1
彼のリンクの答えはおそらくあなたを助けるでしょう. このサイトでは、さまざまな方法で回答が得られます。たとえば、メニュー項目で android:state_pressed=true およびその他のオプション (選択、フォーカス) を使用すると、項目の背景が白色で表示されます。
于 2012-01-19T13:49:46.807 に答える
1
私は標準オプション メニューのファンではないので、常に ViewStubsを使用してカスタマイズされたメニューを作成します。メニュー バーをデザインする新しいレイアウトを作成し、それをレイアウト ファイルの ViewStub と統合して、メニューをスライドさせます。
サンプル Java コード:
public boolean onKeyDown( int keyCode, KeyEvent event ) {
switch (keyCode) {
case KeyEvent.KEYCODE_MENU:
mMenuPanel = ( ( ViewStub ) findViewById( R.id.stub_onoption ) ).inflate();
// initialize buttons of your menu layout and define setOnClickListener()
if( !menuVisible ) {
constants.showPanel( this, mMenuPanel, true );
menuVisible = true;
} else {
constants.hidePanel( this, mMenuPanel, true );
menuVisible = false;
}
return true;
default:
break;
}
}
public static void hidePanel( Context context, View panel, boolean slideDown ) {
panel.startAnimation( AnimationUtils.loadAnimation( context, slideDown ? R.anim.slide_out : R.anim.slide_in_top ) );
panel.setVisibility( View.GONE );
}
public static void showPanel( Context context, View panel, boolean slideUp ) {
panel.startAnimation( AnimationUtils.loadAnimation( context, slideUp ? R.anim.slide_in : R.anim.slide_out_top ) );
panel.setVisibility( View.VISIBLE );
}
このようにして、メニュー バー (背景ボタンなど) を完全にカスタマイズできます。
編集:これは、それを行う方法の大まかなアイデアです。初めて行う場合は、背景色を変更するだけで少し重くなるかもしれませんが、後でこの概念を使用して、さまざまなスライドイン効果など、さまざまな場面でメニューデザインを調整することができます。アプリケーションの設計、場所、サイズなどの変更。さらに、この種の概念は、オプションの検索バーやアプリ内通知 (ダイアログを使用したくない場合) にも使用できます。したがって、それを検討する価値は間違いありません。
于 2012-01-19T13:50:36.410 に答える