【问题标题】:Smallest Width qualifiers not working最小宽度限定符不起作用
【发布时间】:2015-10-17 13:42:04
【问题描述】:

我有一个“layout”文件夹和一个“layout-sw1024dp”文件夹,两者都有一个文件 layout.xml。

在“布局”文件夹中,我有一个具有以下尺寸的 ImageView 视图:

android:layout_width="150dp"
android:layout_height="150dp"

在“layout-sw1024dp”文件夹中,同一个ImageView的尺寸为:

android:layout_width="300dp"
android:layout_height="300dp"

使用 GenyMotion,我有两个尺寸如下的设备:

  • 480x800
  • 1080x1920

问题在于,当 1080x1920 设备明显符合 1024 最小宽度时,两个设备上都显示较小的图像尺寸。

我错过了什么吗?

【问题讨论】:

  • 1080x1920的屏幕尺寸是多少? 1024最小宽度是一个与密度无关的像素维度,所以它会根据屏幕像素和屏幕宽度维度而变化。
  • dp = 与密度无关的像素,您显示的是 Genymotion 尺寸,但模拟器的密度是多少(mdpi、hdpi、xhdpi 等)
  • 两者的模拟器dpi设置都是240dpi,所以是hdpi。

标签: android android-layout


【解决方案1】:

根据 Morrison Chang 的上述评论,我需要考虑模拟器(设备)的 dpi。我找到了以下计算来获得实际的最小宽度dpi:

How to convert resolution to dpi

计算密度:

Density=Square root((wp*wp)+(hp*hp))/di

其中 wp 是以像素为单位的宽度分辨率,hp 是以像素为单位的高度分辨率,di 是以英寸为单位的对角线尺寸。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    相关资源
    最近更新 更多