在我的项目中,自定义视图具有固定宽度。宽度以values-> dimen
指定<dimen name="layout_width">75dp</dimen>
问题是在某些设备(例如:Pixel)中,分辨率为1080 X 1920,此视图为Clipped。然而一些其他设备(例如:Pixel2)具有相同的功能 解决一切正常。
已尝试使用此post中的不同维度文件。这些设备都从相同的维度文件中选取
代码
<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>
答案 0 :(得分:1)
在您的imageView中,尝试使用不同的scaleTypes以查看是否适合您的用例。
<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_XY
,FIT_START
,FIT_CENTER
,FIT_END
,CENTER
,CENTER_CROP
答案 1 :(得分:1)
由于设备的屏幕dpi不同,会发生这种情况。 像普通的1080 * 1960设备v / s nexus 5x(具有更高的dpi和相同的分辨率)
另一个例子可能是三星Galaxy edge S6(它具有更高的dpi,为577dpi,xxxhdpi分辨率)。
最一致和最可靠的解决方案是不使用静态高度宽度,而是以这样的方式排列布局使用wrap_content和match_parent 属性和相对布局