我创建了一个简单的菜单,其中包含两个选项,即“添加新联系人”和“设置”以及白色 png 图像。
所以现在如果我在 2.3.3 android OS 版本中运行,它看起来像下图:
现在如果我在 2.2 android 操作系统中运行,那么它看起来像下图:
所以现在如果我想在 android 2.2 中将背景设置为黑色,我该怎么做才能让图标可见。请给我关于这个问题的任何建议。
我创建了一个简单的菜单,其中包含两个选项,即“添加新联系人”和“设置”以及白色 png 图像。
所以现在如果我在 2.3.3 android OS 版本中运行,它看起来像下图:
现在如果我在 2.2 android 操作系统中运行,那么它看起来像下图:
所以现在如果我想在 android 2.2 中将背景设置为黑色,我该怎么做才能让图标可见。请给我关于这个问题的任何建议。
处理选项菜单的最佳方法是对其进行自定义。
您可以自定义选项菜单,包括:
添加自定义字体
更改字体大小
更改字体颜色
将背景设置为可绘制资源(例如图像、边框、渐变)
要将背景更改为边框或渐变,您必须在 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); }