视图 剪辑分辨率为 1080 X 1920 的手机



在我的项目中,自定义视图具有固定宽度。宽度在值>dimen中指定

<dimen name="layout_width">75dp</dimen>

问题是在某些分辨率为 1080 X 1920 的设备(例如:像素(中,此视图被裁剪。但是其他一些设备(例如:Pixel2(具有相同的分辨率一切正常。

尝试使用不同的维度文件,如这篇文章所示。这两个设备都从相同的dimen文件中挑选

法典

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="21dp"
    android:gravity="center"
    android:orientation="vertical">
    <RelativeLayout
        android:layout_width="55dp"
        android:layout_height="55dp"
       >
        <ImageView
            android:id="@+id/icon"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_centerInParent="true"
            tools:background="@drawable/icon" />
    </RelativeLayout>
    <TextView
        android:id="@+id/title"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:layout_marginTop="20dp"
        android:gravity="center"
        />
</LinearLayout>

在您的 imageView 中,尝试不同的 scaleType,看看是否有适合您的用例。

    <ImageView
        android:id="@+id/icon"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:layout_centerInParent="true"
        android:scaleType="fitCenter"
        tools:background="@drawable/icon" />

其他可接受的scaleType值是FIT_XYFIT_STARTFIT_CENTERFIT_ENDCENTERCENTER_CROP

这是由于设备的屏幕 dpi 不同而发生的。像普通的1080 * 1960设备v/s nexus 5x(具有更高的dpi和相同的分辨率(

另一个例子可以是三星Galaxy Edge S6(它具有更高的dpi,如577dpi,分辨率为xxxhdpi(。

最一致和可靠的解决方案是不使用静态高度宽度,而是使用wrap_content和match_parent属性以及相对布局以这种方式排列布局

最新更新