3

私の質問には多くの説明が必要だとは思いません。コンテキストメニュー項目のフォントとそのサイズを変更するだけです。それ、どうやったら出来るの?

これが私のコードです:

@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
      super.onCreateContextMenu(menu, v, menuInfo);
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.listmenu, menu);

    }

これが、Androidのデフォルトのコンテキストメニューを取得する方法です。しかし、私はそれをカスタマイズしたいと思います。

4

3 に答える 3

2

これを試して

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
getLayoutInflater().setFactory(new Factory() {
    @Override
    public View onCreateView(String name, Context context, AttributeSet attrs) {
        if (name .equalsIgnoreCase(“com.android.internal.view.menu.IconMenuItemView”)) {
            try{
                LayoutInflater f = getLayoutInflater();
                final View view = f.createView(name, null, attrs);
                new Handler().post(new Runnable() {
                    public void run() {
                        // set the background drawable
                        view .setBackgroundResource(R.drawable.my_ac_menu_background);

                        // set the text color
                        ((TextView) view).setTextColor(Color.WHITE);
                    }
                });
                return view;
            } catch (InflateException e) {
                } catch (ClassNotFoundException e) {}
        }
        return null;
    }
});
return super.onCreateOptionsMenu(menu);
}
于 2012-07-19T14:08:41.497 に答える
2

R.menu.listmenu の代わりに独自のレイアウトを作成して、その上にカスタム フォントを設定できますか?

別の方法として、ユーザーのタッチを傍受して完全にカスタム メニューをポップアップすることもできますが、これは特定のフォント/メニューを期待しているユーザーに不快感を与える可能性があります。

于 2012-07-19T13:52:38.987 に答える