在平板电脑设备上保留手机布局比例的工具/方式

时间:2013-02-19 09:51:12

标签: android android-layout

这是一个示例布局:

<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,但这需要很多机械工作。有更好的解决方案吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

<LinearLayout 
      :
      :        
 android:focusable="true"
      :
/>

答案 1 :(得分:0)

如果要调整ImageView的缩放比例 添加

 android:scaleType="fitXY"

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

答案 2 :(得分:0)

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

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

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