如何设置imageView的大小

时间:2014-02-27 21:40:07

标签: android

我的布局中有2个imageview,我这样定义

<ImageView
    android:id="@+id/image1"
    android:layout_width="320dp"
    android:layout_height="200dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/image1"
    android:contentDescription="@string/image1" />

<ImageView
    android:id="@+id/image2"
    android:layout_width="320dp"
    android:layout_height="220dp"
    android:layout_alignLeft="@+id/image1"
    android:layout_alignParentBottom="true"
    android:src="@drawable/image2"
    android:contentDescription="@string/image2" />

在仿真器上它可以正常工作,但是当我在平板电脑上测试应用程序时,图像仍然是320x220。 我如何调整图像大小?

3 个答案:

答案 0 :(得分:3)

原因是因为许多平板电脑具有与手机相同的密度(mdpi,xhdpi),因此dp单位解析为相同数量的像素。将图像大小设置为dimens资源,您可以控制不同的最小屏幕大小。换句话说:

<强> RES /布局/ your_layout.xml

<ImageView
    android:id="@+id/image1"
    android:layout_width="@dimen/image_width"
    android:layout_height="@dimen/image_height"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/image1"
    android:contentDescription="@string/image1" />

<强> RES /值/ dimens.xml

<resources>
    <dimen name="image_width">320dp</dimen>
    <dimen name="image_height">200dp</dimen>
</resources>

<强> RES /值-sw600dp / dimens.xml

<resources>
    <dimen name="image_width">640dp</dimen>
    <dimen name="image_height">400dp</dimen>
</resources>

较大的值将用于最小宽度为600dp或更高的屏幕(平均7“平板电脑),而较小的值将用于其他任何地方作为默认值。如果要添加更多离散更改,您可以创建额外的dimens覆盖特定用例中的默​​认值。

答案 1 :(得分:0)

你的意思是你想要different devices的不同大小?像手机的320x200,但平板电脑的640x400?

您需要拥有不同的布局文件。

或者您可以通过编程方式更改大小/布局/:https://stackoverflow.com/a/15171766/29505

答案 2 :(得分:0)

要添加到Devunwired答案,您还必须为10“设备添加res/values-sw720dp/dimens.xml。所以您应该有三个:

res/values/dimens.xml (standard screen)

res/values-sw600dp/dimens.xml (7" devices)

res/values-sw720dp/dimens.xml (10" devices)