Android 为什么具有相同物理尺寸和分辨率的设备可能具有不同的密度?
我正在测试华为MediaPad T5和三星Galaxy Tab A。 它们具有相同的财政尺寸(10.1英寸)和像素数(1920*1200) 问题1:为什么它们的密度不同(2.0和1.5)?密度仅取决于财政规模和像素数,对吗 问题2:我使用dp为边栏(150dp)提供了相同的宽度,为什么它们看起来不同Android 为什么具有相同物理尺寸和分辨率的设备可能具有不同的密度?,android,android-layout,screen,screen-resolution,huawei-mobile-services,Android,Android Layout,Screen,Screen Resolution,Huawei Mobile Services,我正在测试华为MediaPad T5和三星Galaxy Tab A。 它们具有相同的财政尺寸(10.1英寸)和像素数(1920*1200) 问题1:为什么它们的密度不同(2.0和1.5)?密度仅取决于财政规模和像素数,对吗 问题2:我使用dp为边栏(150dp)提供了相同的宽度,为什么它们看起来不同 <android.support.v7.widget.RecyclerView android:id="@+id/fcom_categories" an
<android.support.v7.widget.RecyclerView
android:id="@+id/fcom_categories"
android:layout_width="150dp"
android:layout_height="match_parent"
android:background="@color/white"
android:scrollbars="none"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"/>
Sumsung(hdpi)
2019-03-31 17:40:57.310 24205-24205/com.ristoo I/DisplaySpecifications: displayName = 内置屏幕
2019-03-31 17:40:57.311 24205-24205/com.ristoo I/DisplaySpecifications: width = 1920
2019-03-31 17:40:57.311 24205-24205/com.ristoo I/DisplaySpecifications: height = 1200
2019-03-31 17:40:57.312 24205-24205/com.ristoo I/DisplaySpecifications: widthPixels = 1920
2019-03-31 17:40:57.312 24205-24205/com.ristoo I/DisplaySpecifications: heightPixels = 1200
2019-03-31 18:12:15.386 25654-25654/com.ristoo I/DisplaySpecifications: density = 1.5
2019-03-31 17:40:57.312 24205-24205/com.ristoo I/DisplaySpecifications: densityDpi = 240
2019-03-31 17:40:57.313 24205-24205/com.ristoo I/DisplaySpecifications: xdpi = 225.777
2019-03-31 17:40:57.313 24205-24205/com.ristoo I/DisplaySpecifications: ydpi = 225.77701
2019-03-31 17:40:57.314 24205-24205/com.ristoo I/DisplaySpecifications: screenHeight = 1200
2019-03-31 17:40:57.314 24205-24205/com.ristoo I/DisplaySpecifications: screenWidth = 1920
2019-03-31 17:40:57.314 24205-24205/com.ristoo I/DisplaySpecifications: orientation = 2
这取决于制造商选择哪个像素密度桶。例如,在电视机或平板电脑等设计用于离你的脸更远的地方时,他们可能会选择较低的密度,使物品看起来更大
因此,尽管150dp的项目在所有设备上的大小大致相同,但仍会有一些变化 谢谢你的回复@马特。但这使得开发人员很难开发出一种适应所有设备的视图。例如,我们无法确定屏幕截图中边栏的正确大小,“150dp”在三星上看起来更好,“100dp”在华为上看起来更好。我们必须以编程方式定义所有大小以适应所有显示密度?@Shi:“我们必须以编程方式定义所有大小以适应所有显示密度?”--通常,您选择一个看起来可以接受的值,然后转到其他值。请记住,用户可以在“设置”中选择有效的屏幕密度和字体比例,因此除了20000多种设备型号外,还有数十种用户指定的显示特性。@Commonware感谢您的响应。“转到其他方面。”意味着我必须将xml(layout_width=“150dp”)中的所有值作为变量。并根据设备密度进行更改,对吗?(大量工作)是否有最佳实践?谢谢@Shi:“我必须将xml(layout_width=“150dp”)中的所有值作为变量。并根据设备密度进行更改”--不。你可以为给定的屏幕大小选择一个值,然后使用它。这个侧边栏的精确宽度不应该是这个应用程序最让你担心的100件事之一。如果几年后,您已经修复了所有的安全问题、性能问题、操作系统版本兼容性问题等,那么请担心优化此侧边栏宽度。@commonware Right!非常感谢您的回复!
2019-03-31 17:40:57.310 24205-24205/com.ristoo I/DisplaySpecifications: displayName = 内置屏幕
2019-03-31 17:40:57.311 24205-24205/com.ristoo I/DisplaySpecifications: width = 1920
2019-03-31 17:40:57.311 24205-24205/com.ristoo I/DisplaySpecifications: height = 1200
2019-03-31 17:40:57.312 24205-24205/com.ristoo I/DisplaySpecifications: widthPixels = 1920
2019-03-31 17:40:57.312 24205-24205/com.ristoo I/DisplaySpecifications: heightPixels = 1200
2019-03-31 18:12:15.386 25654-25654/com.ristoo I/DisplaySpecifications: density = 1.5
2019-03-31 17:40:57.312 24205-24205/com.ristoo I/DisplaySpecifications: densityDpi = 240
2019-03-31 17:40:57.313 24205-24205/com.ristoo I/DisplaySpecifications: xdpi = 225.777
2019-03-31 17:40:57.313 24205-24205/com.ristoo I/DisplaySpecifications: ydpi = 225.77701
2019-03-31 17:40:57.314 24205-24205/com.ristoo I/DisplaySpecifications: screenHeight = 1200
2019-03-31 17:40:57.314 24205-24205/com.ristoo I/DisplaySpecifications: screenWidth = 1920
2019-03-31 17:40:57.314 24205-24205/com.ristoo I/DisplaySpecifications: orientation = 2