布局无法正确缩放

时间:2015-09-05 20:54:31

标签: java android

我正在显示7个图像按钮,在编辑xml时预览看起来很完美,但是当我在模拟器中启动应用程序时,它似乎没有缩放并且正在切断图像。

它应该是这样的:

-0-0-
0-0-0
-0-0-

'0'是按钮。我设置了一个整体相对布局和三个线性布局。中间位置首先是顶部和底部对齐中间。

这是我的XML文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/activity_color_wheel">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:id="@+id/middle_left">

    <ImageButton
        android:id="@+id/dode1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dodecagon1"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground" />

    <ImageButton
        android:id="@+id/dode2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dodecagon2"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground"
        />

    <ImageButton
        android:id="@+id/dode3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dodecagon3"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/middle_left"
    android:layout_centerInParent="true"
    android:id="@+id/bottom">

    <ImageButton
        android:id="@+id/dode4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dodecagon4"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground"/>

    <ImageButton
        android:id="@+id/dode5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dodecagon5"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground"/>

</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/middle_left"
    android:layout_centerInParent="true"
    android:id="@+id/top">

    <ImageButton
        android:id="@+id/dode6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dodecagon6"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground"/>

    <ImageButton
        android:id="@+id/dode7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/dodecagon7"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground"/>
</LinearLayout>


<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:gravity="center_horizontal"
    android:textSize="25dp" />
</RelativeLayout>

基本上,顶部和底部布局在底部附近被切断。我想我错过了某种缩放属性,但我不确定。

2 个答案:

答案 0 :(得分:0)

您的所有观点&#39;宽度和高度是&#34;包装内容&#34;。
在这种情况下,如果总图像宽度/高度大于屏幕的宽度/高度,它将被切断。
你应该做的是:
1)将LinearLayouts宽度设置为&#34;匹配parent&#34;。
2)根据需要为儿童视图设定重量 3)将儿童宽度设置为0dp以获得更好的性能。

示例代码段:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:id="@+id/middle_left">

    <ImageButton
        android:id="@+id/dode1"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:src="@drawable/testImage"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground" />

    <ImageButton
        android:layout_weight="1"
        android:id="@+id/dode2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:src="@drawable/testImage"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground"
        />

    <ImageButton
        android:layout_weight="1"
        android:id="@+id/dode3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:src="@drawable/testImage"
        android:onClick="selected"
        android:background="?android:attr/selectableItemBackground" />
</LinearLayout>
祝你好运。

答案 1 :(得分:0)

如果您的问题仅适用于顶部和底部图片,那么您只需要将ScrollView作为父级添加到RelativeLayout