我有一个屏幕,我需要在水平LinearLayout中显示许多图像。
我为xhdpi设计了它。我将每个ImageView的大小设置为100dp,并在模拟器(xhdpi 768x1280 4.7“屏幕)上看起来像 在平板电脑模拟器(xhdpi 1534x2048 9“屏幕)上this看起来像this。
在后者中,图像不能正确缩放,看起来就像在较小的屏幕上一样。
有没有办法让它在两种屏幕尺寸上看起来都一样?
答案 0 :(得分:0)
要在不同的屏幕上调整您的布局,您需要将其设计为具有响应性。是的,就像G.Dator所说,你可以使用权重属性。这是一个例子:
<LinearLayout
android:layout_height="200dp"
android:layout_width="match_parent"
android:orientation="horizontal">
<ImageView
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="25"/>
<ImageView
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="25"/>
<ImageView
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="25"/>
<ImageView
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="25"/>
</LinearLayout>
如果您有其他问题,请与我们联系。
答案 1 :(得分:0)
实际上,图像在2个设备中的大小相同。问题是手机的dp
宽度(384dp
)与平板电脑(767dp
)之间存在差异。解决问题的方法很少:
ImageView
adjustViewBound=true
ImageView
使用相同的权重来保持图像比率。答案 2 :(得分:0)
除了实现响应式布局结构(如@Bhimbim所提到的)之外,还有一个库(https://github.com/intuit/sdp),当您想要编写一次代码并在多个不同的设备上使用它时,它可能很有用,它提供了您sdp
单位而不是dp
,这有助于您的观点更好地扩展。
实施例:
layout_width="@dimen/_30sdp"
layout_height="@dimen/_30sdp"
(抱歉,我最近没有注册,因此无法评论。)