質問

この質問に答えはこちら

私を変えようとしているの標準グレーには、黄緑色。があるような簡単なこ(Androidのテーマ、例えば)いました回避策としての説明がこのページ: http://tinyurl.com/342dgn3.

著者らしい姿を消し、誰か助けてくれ統合にこのコードについて教えてください。かわからないかを実装する必要があるとの LayoutInflater 工場でクラスです。

役に立ちましたか?

解決

時には何が膨らませたり、吸い込んだメニューを呼ぶこsetMenuBackground()メソッド

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater=getMenuInflater();
    inflater.inflate(R.menu.menu,menu);
    setMenuBackground(); 
    return true;    
}

を書このsetMenuBackground()メソッド

    protected void setMenuBackground(){                     
        // Log.d(TAG, "Enterting setMenuBackGround");  
        getLayoutInflater().setFactory( new Factory() {  
            public View onCreateView(String name, Context context, AttributeSet attrs) {
                if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {
                    try { // Ask our inflater to create the view  
                        LayoutInflater f = getLayoutInflater();  
                        final View view = f.createView( name, null, attrs );  
                        /* The background gets refreshed each time a new item is added the options menu.  
                        * So each time Android applies the default background we need to set our own  
                        * background. This is done using a thread giving the background change as runnable 
                        * object */
                        new Handler().post( new Runnable() {  
                            public void run () {  
                                // sets the background color   
                                view.setBackgroundResource( R.color.androidcolor);
                                // sets the text color              
                                ((TextView) view).setTextColor(Color.BLACK);
                                // sets the text size              
                                ((TextView) view).setTextSize(18);
                }
                        } );  
                    return view;
                }
            catch ( InflateException e ) {}
            catch ( ClassNotFoundException e ) {}  
        } 
        return null;
    }}); 
}

他のヒント

これは明らかにする問題の多いプログラムは、Googleが提供する満足のいく対応。

のsetMenuBackground()ハックするAbhay KumarやNik躍を掲載し始めてくださいがいはクラッシュなAndroid2.3.

ご自由にお使いください回答(ルイSemprini)このstackoverflowの質問のより良い、より洗練されたハッキングすることが2.1,2.2 2.3(やるから害にならない3.Xはなかったものでないことを保証す):

どのように背景色を変えるオプションのメニューにたどり着けるのか!?

また、ここには他に多くの資源をいがありその問題について:

背景色を変えるのはandroidのメニュー

Android:カスタマイズ用のメニュー。g背景色)

http://www.macadamian.com/blog/post/android_-_theming_the_unthemable/

Androidメニュー項目の切り替えボタン

によって行うことができるAndroid用オプションメニューの背景の不透明感のあ?

http://www.codeproject.com/KB/android/AndroidMenusMyWay.aspx

設定メニューの背景の不透明

利用のsetMenuBackgroundにonCreate.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top