Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么具有相同物理尺寸和分辨率的设备可能具有不同的密度?_Android_Android Layout_Screen_Screen Resolution_Huawei Mobile Services - Fatal编程技术网

Android 为什么具有相同物理尺寸和分辨率的设备可能具有不同的密度?

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

我正在测试华为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"
        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