我正在显示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>
基本上,顶部和底部布局在底部附近被切断。我想我错过了某种缩放属性,但我不确定。
答案 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
。