gpt4 book ai didi

android - 两个屏幕,大小相同但密度不同

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:54 28 4
gpt4 key购买 nike

两个屏幕,除了密度,几乎一样大:

左屏幕是一个模拟器 768x1280 160dpi (MDPI)。右侧屏幕是模拟器 720x1280 320dpi (XHDPI)。

enter image description here

我使用的是宽度 300dp 和高度 300dp。XML:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/picture"
android:layout_width="300dp"
android:layout_height="300dp"
android:src="@drawable/picture"
android:layout_centerInParent="true"/>
</RelativeLayout>

无论图像质量如何,两个图像不应该在两个(和其他)屏幕中填充相同的空间吗?有一个答案证实了这个说法here

编辑:我看到用户说您必须为不同的屏幕复制相同的 XML,以便您可以更改元素的 DP 值。如果这是真的,我想我误解了 DP 单元的目的。我认为它的目的是让图像在不同屏幕上使用相同的 DP 值具有完全相同的尺寸。你能解释一下吗?

最佳答案

我认为使用模拟器这一事实在这里造成了一些困惑。

像您在此处所做的那样指定 dp 单位应该意味着图像在不同设备上的物理尺寸大致相同。在你的问题中你说我们正在比较几乎相同尺寸的两个屏幕,但事实并非如此!

鉴于您在问题中陈述的分辨率,我们实际上正在查看(大约)左侧的 9 英寸平板电脑和右侧的 4.5 英寸手机。由于这些是虚拟设备并且可以在屏幕上调整大小,因此可以使它们看起来大小相同,但它们在现实中代表的是非常不同的东西。

从左边的状态栏和系统按钮我们可以看出这确实像一个平板电脑,我在这里使用状态栏中的图标作为粗略的比例尺:

enter image description here

这支持了这样的预期,即如果您面前确实有平板电脑和手机(或者如果模拟器的比例正确),则两者的图像物理尺寸相同。

编辑附加细节以回应对此答案的评论:

用 dp 描述大小的目的是它们在具有不同像素密度的设备上具有相同的物理大小。这就是您在上面所做的。例如,如果元素每边 2 英寸,则在高分辨率或低分辨率手机上为 2 英寸,在高分辨率或低分辨率平板电脑上为 2 英寸。

如果您想要的不是让元素具有相同的实际大小,而是始终与屏幕保持相同的比例(比如总是屏幕宽度的 90%),那么您可以使用几种类型的布局可以选择。

LinearLayout使用权重的概念来分配不同比例的空间。

支持库包括PercentRelativeLayout and PercentFrameLayout它像常规布局一样工作,但允许您使用百分比指定大小。

The new ConstraintLayout目前仅适用于 Android Studio 2.2 预览版。我自己还没有使用过它,但它似乎包含了它自己的基于比例和百分比的概念,这些概念也可以实现这一点。

关于android - 两个屏幕,大小相同但密度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38292713/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com