了解支持与图像相关的不同屏幕尺寸

时间:2017-02-20 19:15:05

标签: android image android-layout android-imageview android-screen-support

我的应用程序中的图像的正确视图仍然存在问题。所以在我的第一台设备(5,2英寸和480密度)上看起来不错。

enter image description here

在第二台设备(5,5英寸和420密度)上,图像不适合,并显示白色边框。

enter image description here

这是我布局中的ImageView:

  <ImageView
    android:id="@+id/iv_image"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"   
    android:layout_alignParentStart="true" 
    android:layout_below="@id/tv_topic" />

我在Android Blog

上阅读后,将所有图片放在drawable文件夹中
  

通常有两种方法可以定位所有屏幕DPI。   1.最简单的方法 - 使所有图像达到超高或超高DPI。

     

如果设备与可绘制的DPI不匹配,Android会自动缩放drawable。如果仅以高密度创建唯一的绘图,则较低的DPI屏幕将缩小资源以适合布局。

所以我在drawable文件夹中以最高分辨率ONCE实现了所有图像。是否有必要将它们全部放在特定文件夹中(drawable-ldpi,drawable-mdpi ...)?这意味着我的图像将有多个副本,总大小相同。

是的,我阅读了几次支持多个屏幕的官方文档。但是我理解它有些问题。

1 个答案:

答案 0 :(得分:0)

我建议你使用layout_weight属性来保持ImageView和问题布局之间的恒定比例。 将您的布​​局更改为以下内容:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="4">
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <ImageView
            android:id="@+id/iv_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>
    <LinearLayout
        android:layout_height="match_parent"
        android:layout_width="0dp"
        android:layout_weight="3" />
</LinearLayout>