我制作了一个显示6张图片的应用,每行3张。它在android studio的布局设计器中看起来很完美,但在具有其他屏幕分辨率的物理设备上看起来并不完美。我对此并不感到惊讶,但我不知道如何使应用与所有屏幕尺寸兼容。
布局设计师Android Studio:(1:4)
物理设备:(1:2)
源代码:
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.test.testing.app.MainActivity">
<ImageView
android:id="@+id/Image1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:contentDescription="Image1"
android:src="@drawable/_5221802" />
<ImageView
android:id="@+id/Image3"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/Image2"
android:layout_marginRight="5dp"
android:contentDescription="Image3"
android:src="@drawable/_5221802" />
<ImageView
android:id="@+id/Image2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignTop="@+id/Image1"
android:layout_centerHorizontal="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@id/Image3"
android:layout_toRightOf="@id/Image1"
android:contentDescription="Image2"
android:src="@drawable/_5221802" />
<ImageView
android:id="@+id/Image4"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Image1"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:contentDescription="Image4"
android:src="@drawable/_5221802" />
<ImageView
android:id="@+id/Image5"
android:layout_width="100dp"
android:layout_height="100dp"
android:contentDescription="Image5"
android:src="@drawable/_5221802"
android:layout_alignTop="@+id/Image6"
android:layout_alignRight="@+id/Image2"
android:layout_alignEnd="@+id/Image2"
android:layout_alignLeft="@+id/Image2"
android:layout_alignStart="@+id/Image2" />
<ImageView
android:id="@+id/Image6"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentRight="true"
android:layout_below="@id/Image3"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:contentDescription="Image6"
android:src="@drawable/_5221802" />
答案 0 :(得分:0)
为什么不使用线性布局并为一行中的所有三个图像设置相等的权重。
看看这段代码,我已经修剪了一下,但主要部分是:
将RelativeLayout更改为LinearLayout(使用&#39;水平&#39;方向),然后将所有三个图像的宽度更改为0dp - android:layout:width =&#34; 0dp&#34; ,并为所有三个人增加了等权重 layout_weight =&#34; 1&#34; &#39;
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/Image1"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_weight="1"
android:contentDescription="Image1"
android:src="@drawable/_5221802" />
<ImageView
android:id="@+id/Image3"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_weight="1"
android:contentDescription="Image3"
android:src="@drawable/_5221802" />
<ImageView
android:id="@+id/Image2"
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_weight="1"
android:contentDescription="Image2"
android:src="@drawable/_5221802" />
</LinearLayout>
这适用于任何屏幕尺寸的任何设备。
答案 1 :(得分:0)
实际上,您无需运行应用程序即可了解应用程序的布局在特定设备上的外观,您可以在Eclipse中查看 - 布局编辑器。顶部栏中有许多下拉列表供您选择您希望应用程序运行的设备类型,并了解它的外观。
要回答您的问题,理想情况下,您应该定义Gridview并在那里添加图像。