android 自定义menu 怎么修改高度

billowworld1 2012-03-19 09:21:31
代码


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i("msg", "=1= : onCreate");
Button btnOk = (Button) findViewById(R.id.btn_ok);
btnOk.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.d("msg", "onCreateOptionsMenu ");
// menu.add(0, 0, 0, "111");
// menu.add(0, 1, 1, "222");
// menu.add(0, 2, 2, "333");
// menu.add(0, 3, 3, "444");
// super.onCreateOptionsMenu(menu);
MenuInflater mInflater = getMenuInflater();
mInflater.inflate(R.menu.web_menu, menu);

setMenuBackground();
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

return super.onOptionsItemSelected(item);
}

protected void setMenuBackground() {
this.getLayoutInflater().setFactory(new LayoutInflater.Factory() {
public View onCreateView(String name, Context context,
AttributeSet attrs) {
Log.d("msg", "===:" + name);
// 指定自定义inflate的对象
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() {

ViewGroup.LayoutParams linearParams = (ViewGroup.LayoutParams) view
.getLayoutParams(); // 取控件view当前的布局参数
linearParams.height = 75;// 当控件的高强制设成75象素
linearParams.width = linearParams.FILL_PARENT;
//
view.setLayoutParams(linearParams); // 使设置好的布局参数应用到控件view

Log.d("msg", "view.getContext() "
+ view.getContext().toString());
Log.d("msg",
"view.getHeight() " + view.getHeight());
Log.d("msg",
"view.getWidth() " + view.getWidth());
// 设置背景图片
// view.setBackgroundResource(R.drawable.web_toolbar_bg);
}
});
return view;
} catch (InflateException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} else if (name
.equalsIgnoreCase("com.android.internal.view.menu.IconMenuView")) {



}
return null;
}
});
}


<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<group
android:menuCategory="system">
<item android:id="@+id/menu_return"
android:icon="@drawable/web_toolbar_return"/>

<item android:id="@+id/menu_refresh"
android:icon="@drawable/web_toolbar_refresh"/>

<item android:id="@+id/menu_prev_page"
android:icon="@drawable/web_toolbar_prev_page"/>

<item android:id="@+id/menu_next_page"
android:icon="@drawable/web_toolbar_next_page"/>
</group>
</menu>

linearParams.height = 75;// 当控件的高强制设成75象素
linearParams.width = linearParams.FILL_PARENT;
这句修改高度 但调试时没有更改

...全文
749 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不可以。相信是没有实测过。也有可能是针对某一版本有用。不能用或不能通用
billowworld1 2012-03-26
  • 打赏
  • 举报
回复
求大神啊
小笨熊 2012-03-26
  • 打赏
  • 举报
回复
你可以修改单个item的高度的哇
pq808 2012-03-19
  • 打赏
  • 举报
回复
没用过这个
billowworld1 2012-03-19
  • 打赏
  • 举报
回复
有人用这种方法修改过menu的高度的吗
billowworld1 2012-03-19
  • 打赏
  • 举报
回复
求大神啊

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧