2012-01-19 9 views

答えて

1

彼のリンクの回答がおそらくあなたに役立つでしょう。このサイトでは、さまざまな方法で答えが得られます。たとえば、android:state_pressed = trueを使用し、メニュー項目に他のオプション(選択、フォーカス)を設定すると、あなたの背景を白色で表示します。私はいつもViewStubsでカスタマイズメニューを作成し、なぜ私はすべてのことで、標準オプションメニューのファンではない

How to change the background color of the options menu?

+0

その例で示唆されているセレクタメソッドは、実際の背景ではなく、アイコンを変更するだけでしたが、回答が最良の回答として選択されていませんでした。 –

1

です。 。ちょうどあなたが、あなたのメニューバーをデザインレイアウトファイルに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); 
} 

この方法メニューバー(背景ボタンなど)を完全にカスタマイズしてください。

編集:これはどのように行うのが大まかな方法​​です。そして、あなたが最初にそれをやっているのであれば、背景色を変えるためにちょっと太り過ぎかもしれませんが、後でこの概念をさまざまなスライドインエフェクトのような様々な場面で使うことができます。アプリケーションの設計、場所、サイズなどの変更が可能です。 さらに、この種のコンセプトは、オプションの検索バーやアプリ内通知(ダイアログを使用したくない場合)にも使用できます。だからそれを調べる価値がある。

関連する問題