android选项菜单问题在不同的版本

时间:2012-08-27 05:40:34

标签: android android-layout android-emulator android-version

我创建了一个简单的菜单,其中有两个选项,分别是“添加新联系人”和“带有白色png图像的“设置”。

所以现在如果我在2.3.3安卓操作系统版本中运行它看起来像下图:

Android 2.3.3 option menu

现在,如果我在2.2 android os中运行,那么它看起来像下图:

enter image description here

所以现在如果我想在Android 2.2中制作黑色背景,以便我可以看到图标,我该怎么办? 请给我关于这个问题的任何建议。

2 个答案:

答案 0 :(得分:1)

您只需要浏览此链接here我遇到了同样的问题,并在那里找到答案。

答案 1 :(得分:1)

处理选项菜单的最佳方法是自定义它。

您可以自定义选项菜单,包括:

添加自定义字体

更改字体大小

更改字体颜色

将背景设置为可绘制资源(例如图像,边框,渐变)

要将背景更改为边框或渐变,您必须在res中创建一个名为drawable的资源文件夹,并在其中创建边框XML或渐变XML。

这可以通过编程方式完成,如下所示:

 public class CustomMenu extends Activity {   
/** Called when the activity is first created. */   
@Override  
public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);     } 
public boolean onCreateOptionsMenu(android.view.Menu menu) { 
    MenuInflater inflater = getMenuInflater();  
    inflater.inflate(R.menu.cool_menu, menu);  
    getLayoutInflater().setFactory(new Factory() {  
        public View onCreateView(String name, Context context, 
                AttributeSet attrs) {   
        if (name.equalsIgnoreCase(                                             "com.android.internal.view.menu.IconMenuItemView")) { 
    try {  
        LayoutInflater li = LayoutInflater.from(context); 
        final View view = li.createView(name, null, attrs); 
        new Handler().post(new Runnable() { 
        public void run() {   
// set the background drawable if you want that or keep it default 
//either FOR image, border, gradient, drawable,etc.//   
        view.setBackgroundResource(R.drawable.myimage); 
        ((TextView) view).setTextSize(20);
        // set the text font and color  
        Typeface face = Typeface.createFromAsset(  
        getAssets(),"OldeEnglish.ttf");  
        ((TextView) view).setTypeface(face); 
        ((TextView) view).setTextColor(Color.RED);      }     }); 
        return view;      } 
        catch (InflateException e) {  
        //Handle any inflation exception here  
        } catch (ClassNotFoundException e) {    
        //Handle any ClassNotFoundException here    
                        }     }   
            return null;    }   }); 
           return super.onCreateOptionsMenu(menu);     }