Android动作按钮问题

时间:2013-10-22 13:30:00

标签: android android-actionbar

我在操作栏中有一个菜单项。它总是看起来很小,如下图所示。

enter image description here

我希望它的大小约为。这个的两倍。我在mdpi,hdpi,xhdpi文件夹中放了不同大小的图标。因此,它不是dpi相关的问题。

我在HTC One和模拟器中有这个问题,它是xhdpi。我尝试在xhdpi文件夹中放大图标并在模拟器中测试,但在操作栏中没有更改其大小。对于micromax canvas2(hdpi),它工作正常。

有没有办法设置菜单项的大小来修复高度和宽度?或任何其他解决方法?

4 个答案:

答案 0 :(得分:3)

我有同样的问题,到目前为止我还没有找到解决方案。它是HTC特有的,我在HTC One X上观察到了这种行为。

他们的Sense框架强制使用方形菜单图标,因此它会缩小您的视图范围。作为一种解决方法,我没有使用菜单项api,我为操作栏创建了一个自定义视图,并使用以下答案将我的imageview对齐(同时保留标题和主页图标):SherlockActionBar: How to adjust CustomView against actionBar

答案 1 :(得分:1)

可以使用自定义标题栏:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:background="@drawable/action_bar"
    android:orientation="horizontal" >

<LinearLayout
    android:id="@+id/slidingmenu"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" 
    android:paddingLeft="20dip"
    android:layout_centerInParent="true" 
    android:layout_alignParentLeft="true">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/slidingmenu_selector" 
        android:duplicateParentState="true" />
 </LinearLayout>


<TextView
        android:id="@+id/myheading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textColor="#000000"
        android:textStyle="bold"
        android:textSize="23dp" />

<LinearLayout
    android:id="@+id/homemenu"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" 
    android:paddingRight="20dip"
    android:layout_centerInParent="true" 
    android:layout_alignParentRight="true">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/homemenu_selector" 
        android:duplicateParentState="true" />
 </LinearLayout>


</RelativeLayout>

答案 2 :(得分:1)

将图像放入drawable-nodpi文件夹

答案 3 :(得分:0)

我通过使用menuitem的自定义视图解决了这个问题。

菜单项的布局:          

    <ImageButton
        android:id="@+id/first_menu_item"
        android:layout_width="56dp"
        android:layout_height="33dp"
        android:layout_gravity="center"
        android:contentDescription=""
        android:background="@drawable/menu_item_background"
        android:gravity="center" />

</LinearLayout>

在活动中设置操作栏的自定义视图:

// Set custom menu items for action bar
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT, Gravity.RIGHT
                            | Gravity.CENTER_VERTICAL);   // Set Layout Parameters
lp.setMargins(5, 5, 10, 5); // Left, top, right, bottom margins
View view = LayoutInflater.from(this).inflate(
                    R.layout.actionbar_menu_item, null);
ImageButton menuItem = (ImageButton) view
                    .findViewById(R.id.first_menu_item);
menuItem.setImageDrawable(getResources().getDrawable(
                    R.drawable.edit_button));
menuItem.setOnClickListener(this);
actionBar.setCustomView(view, lp);
actionBar.setDisplayShowCustomEnabled(true);