我的布局中有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。 我如何调整图像大小?
答案 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)