使ImageView在不同设备上看起来相同

时间:2018-02-09 16:38:31

标签: android

我有一个具有ImageView的RelativeLayout,它具有以下属性,

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="100dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="100dp"
android:layout_marginBottom="300dp"

因此,显然100dp在不同的设备上看起来并不相同。 如何在平板电脑上使ImageView看起来与在手机上看起来一样?仅使用1个布局

phone

tablet

2 个答案:

答案 0 :(得分:0)

您可以使用ConstraintLayout的{​​{1}}属性,以便大小始终相对于屏幕宽度和高度。

有关如何使用layout_constraintGuide_percent来实现目标,请参阅the example in the docs of the (deprecated) PercentRelativeLayout

答案 1 :(得分:0)

问题在于您已将import numpy as np def myfunc(A,sx=1.5,sy=3.5): M, N = A.shape J, I = np.meshgrid(range(N), range(M)) return np.dstack((I*sx, J*sy, A)) A=np.array([[1,2,3],[9,8,7]]) print(myfunc(A)) # array([[[ 0. , 0. , 1. ], # [ 0. , 3.5, 2. ], # [ 0. , 7. , 3. ]], # # [[ 1.5, 0. , 9. ], # [ 1.5, 3.5, 8. ], # [ 1.5, 7. , 7. ]]]) 定义为屏幕大小,减去一些边距。所以在小屏幕上它会非常小,在大屏幕上它会非常大。

你最好只是简单地定义你希望它直接变大的程度。您的“手机”屏幕截图看起来像是在使用320dp宽屏幕,所以你可以写一下:

ImageView

现在,您的图像视图在每个屏幕上总是~2.5厘米宽/高,水平居中,距屏幕顶边约2厘米。