【发布时间】:2013-01-14 10:28:53
【问题描述】:
您好,我正在 Android 上开发一个应用程序,我有一些布局,我希望在横向模式下有一个填充 screen-width 的图像。最重要的是,我想要一些特定位置的按钮。
我使用了scrollview(因为如果图像填满了屏幕的宽度,则其高度不适合),其中包含相对布局。
在那个相对布局中,我放置了imageview 和按钮。图像填充宽度并包装高度的内容。按钮是通过设置相对布局中的左边距和上边距来放置的。
在我测试过的手机上一切看起来都不错,但是当我在不同的设备(其他屏幕尺寸和密度)上测试时,所有按钮都在错误的位置并且不再足够大。
我怎样才能改变这一点,使所有比例保持不变?与图片相比,按钮的位置必须完全相同,大小必须相同。
我的代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/svCentralAmerica"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true" >
<RelativeLayout
android:id="@+id/rlCentralAmerica"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/ivCentralAmerica"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:src="@drawable/mapcentralamerica" />
<Button
android:id="@+id/mexu"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_marginTop="33dp"
android:background="@drawable/usa_y"
android:onClick="onCountryClick"
android:paddingTop="3dp"
android:scaleType="fitCenter"
android:tag="1;U"
android:text="2"
android:textColor="@color/Black"
android:textSize="15sp"
android:textStyle="bold" />
<Button
android:id="@+id/mexr"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignTop="@id/mexu"
android:layout_marginLeft="4dp"
android:layout_toRightOf="@id/mexu"
android:background="@drawable/russia_n"
android:onClick="onCountryClick"
android:paddingTop="18dp"
android:scaleType="fitCenter"
android:tag="1;R"
android:text="3"
android:textColor="@color/Red"
android:textSize="15sp"
android:textStyle="bold" />
</RelativeLayout>
</ScrollView>
【问题讨论】:
-
当涉及到不同的屏幕密度时,RelativeLayout 非常棘手,您必须以编程方式根据屏幕尺寸设置它们的位置和尺寸
标签: android image button size screen