Imagebutton layout_center_inparent问题

时间:2011-04-12 09:13:41

标签: android

我的图像按钮有问题,当我指定centerinparent时,它没有正确对齐。

<LinearLayout
        android:layout_width="match_parent" android:layout_marginTop="4dp"
        android:layout_marginLeft="4dp" android:layout_marginRight="4dp"
        android:layout_height="50dp" android:background="#FF0000">

        <RelativeLayout android:layout_height="match_parent"
            android:layout_width="40dp" android:background="#0000FF">
            <ImageView android:id="@+id/imgType"
                android:layout_centerInParent="true" android:layout_width="wrap_content"
                android:src="@drawable/type_text" android:layout_height="wrap_content" />
        </RelativeLayout>

        <RelativeLayout android:layout_height="match_parent"
            android:layout_width="match_parent" android:layout_weight="1">
            <LinearLayout android:orientation="vertical"
                android:layout_height="match_parent" android:layout_width="match_parent">
                <TextView android:layout_width="match_parent"
                    android:textColor="#686a68" android:layout_height="match_parent"
                    android:textSize="15dp" android:text="Manifest : Text"
                    android:ellipsize="end" android:singleLine="true"
                    android:layout_weight="1" />

                <TextView android:layout_width="match_parent"
                    android:textColor="#686a68" android:layout_height="match_parent"
                    android:textSize="15dp" android:id="@+id/txtTitle" android:text="[TEXT NAME]"
                    android:layout_weight="1" android:singleLine="true"
                    android:ellipsize="end" />
            </LinearLayout>
        </RelativeLayout>

        <RelativeLayout android:layout_height="match_parent"
            android:layout_width="60dp" android:background="#00FF00">
            <ImageButton android:src="@drawable/type_text"
                android:layout_height="48dp" android:layout_centerInParent="true"
                android:layout_width="48dp" android:id="@+id/butEdit" />
        </RelativeLayout>

    </LinearLayout>

image

如您所见,图像按钮的垂直对齐方式不正确。

为什么要这样做。

1 个答案:

答案 0 :(得分:0)

您是否尝试在模拟器上运行此操作并使用hierarchyviewer工具(在SDK的“tools”文件夹中。单击列表中的应用程序并选择“加载视图层次结构”)以检查相关元素?看看问题控制和&amp ;;的边距和填充。它的容器。还要查看各种组件的宽度,它可以为您提供问题发生位置的线索。

同时检查@ drawable / type_text中的drawable是否包含任何可能导致感知偏移的空间(我认为不太可能)。

我偶尔会看到缩放图像的奇怪问题,因此如果@ drawable / type_text不是48x48像素,请尝试在Photoshop / GIMP / PSP中手动将图像缩放到所需的大小,看看是否有所不同。

或者尝试使用重力来尝试控制中心:

<LinearLayout android:layout_height="match_parent" android:gravity="center"
    android:layout_width="60dp" android:background="#00FF00">
    <ImageButton android:src="@drawable/type_text"
        android:layout_height="48dp"
        android:layout_width="48dp" android:id="@+id/butEdit" />
</LinearLayout>

或者也许:

<LinearLayout android:layout_height="match_parent" android:gravity="center"
    android:layout_width="wrap_content" android:background="#00FF00">
    <ImageButton android:src="@drawable/type_text"
        android:layout_height="48dp" android:layout_width="48dp"                               
        android:layout_margin="12dp" android:id="@+id/butEdit" />
</LinearLayout>

如果所有其他方法都失败了,请尝试调整ImageButton的各个android:layout_margin *属性来尝试强制执行。

我希望其中一些有帮助。