0

这是一个示例布局:

<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"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="@string/hello_world" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

在手机(480x800)和平板电脑(1280x800)上,布局从图像视图到底部的剩余空间量不同。图像未在平板电脑上缩放,并且 dp 值会产生相对相同的物理值。

有没有办法/工具来保存平板电脑的手机比例,以便缩放图像、空间(dp)?我想,我可以使用 values-xlarge/dimen.xml、values-720dp/dimen.xml,但这是很多机械工作。有更好的解决方案吗?

4

3 回答 3

0

尝试这个:

<LinearLayout 
      :
      :        
 android:focusable="true"
      :
/>
于 2013-02-19T09:54:52.553 回答
0

如果要调整 ImageView 的缩放添加

 android:scaleType="fitXY"

以下是 ImageView 比例类型 http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

于 2013-02-19T09:56:16.013 回答
0

如果您希望您的应用在 2 倍大的显示屏上大 2 倍(所有尺寸和字体大小 x2),您可以手动更改显示密度(将其减少一半)。Android 不会介意,会照常工作。当我希望我的应用程序相同并且仅根据屏幕大小更改比例时,我会使用此技巧。阅读Configuration / DisplayMetrics / updateConfiguration。这是您应该在活动的 onCreate 中运行的草稿代码。我稍后会给你确切的代码。

DisplayMetrics dm = context.getResources().getDisplayMetrics();
// fix display density here to scale all activity's dimentions
context.getResources().updateConfiguration(null, dm);

但这不是正确的android方式。您应该使用适当的资源文件夹为不同的屏幕尺寸提供不同的资源。

于 2013-02-19T10:04:01.250 回答