我的图像在mDPI上是360dp并且占据了整个屏幕宽度。但是当我在nexus 5x api 23 xxhdpi scren上观看图像时,它并没有占据屏幕的整个宽度。我认为MDP上的1dp等于1px所以我可以将其作为标准使用。那么MDPI上的360dp是最大宽度因此它将是所有密度的最大宽度?我错过了什么?
这是我尝试过的。比较这个屏幕尺寸:
给出全屏输出:
这个具有相同360dp的那个:
输出图像不占全屏,为什么:
这就是为什么建议使用ratiosLayout,使用比率?
答案 0 :(得分:0)
我终于弄明白了。这是为解决这些问题而建立约束的一个原因。在这个特殊情况下,它是关于我正在使用的视图中的纵横比。所以为了让它占据活动的整个空间左右,我做了以下工作,并保持了纵横比。请记住,我想要一个360 x 500的比例:
<com.mobile.myapp.customViews.SwippableViewPager
android:id="@+id/pager"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="0dp"
app:layout_constraintDimensionRatio="H,360:500"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
this overview对我学习constraintLayout非常有用。
另一种保证这种方法的方法是使用一个有点被遗忘的视图组,因为它已被弃用:android percentRelativeLayout