我创建了一个简单的菜单,其中有两个选项,分别是“添加新联系人”和“带有白色png图像的“设置”。
所以现在如果我在2.3.3安卓操作系统版本中运行它看起来像下图:
现在,如果我在2.2 android os中运行,那么它看起来像下图:
所以现在如果我想在Android 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); }