android - 了解安卓尺寸

标签 android dimensions dpi

我有两台设备 Desire HD (217dpi, 4,3") 和 Nexus 7 (216dpi, 7")。我实际上正在构建菜单并且对尺寸感到疯狂。我一般使用 dp(与密度无关的像素)。

我们的设计师希望选项比默认值大一点,所以我在 ListView 项目的底部添加了一个 android:minHeight="100dp"。但它在平板电脑和手机上看起来非常不同。这是我将平板电脑屏幕截图调整为 62% 的屏幕截图,因此两个屏幕截图的高度相同。

two screenshots

然而,这两个选项都是 100dp 高度,但如您所见,表格上的间隙非常不同,它们大约为 0.5/1/0.5,这看起来不错,但在移动设备上为 1/1/1,这看起来很糟糕。我不明白为什么会这样。

我还有一个计数器,您可以在黄色框中看到它们都是 100% 缩放的,平板电脑是一个圆角矩形,而在移动设备上它更像是一个圆圈。两者都使用相同的形状 xml:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke android:width="2dp"
            android:color="#fff" />
    <solid android:color="#f00" />
    <padding android:left="4dp"
             android:top="2dp"
             android:right="4dp"
             android:bottom="2dp" /> 
    <corners
        android:bottomRightRadius="10dp"
        android:bottomLeftRadius="10dp" 
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp" /> 
</shape>

为什么这些图像看起来如此不同?我试图比较几乎相同的 dpi 值。我认为这两种设备都具有 hdpi 密度。所以我不能使用基于 dpi 的单独值文件,我可以使用大前缀,但我不确定这在更大的平板电脑上看起来如何。

最佳答案

发生这种情况是因为两个设备具有相同的 DPI 但不同的像素和以英寸为单位的屏幕尺寸。 对于 Android,两者都是 HDPI(因为 216-217dpi)。您可以通过以下方式解决此问题:

  1. 为 nexus 7 或带有 7 的平板电脑创建专用布局。
  2. 为 nexus 7 创建专用样式,例如 values-sw600dp/styles.xml
  3. 调整布局以添加更大的维度。

我认为“Google 解决方案”是为平板电脑创建不同的布局,因为您有更多的空间和屏幕。查看 Gmail 或 Google Play 应用。

基本上,如果您的应用需要在平板电脑上正常运行,您必须为布局和值添加两个新文件夹:

  1. layout-sw600dp ---> nexus 7 或 7"平板电脑
  2. layout-sw720dp ---> nexus 10 或 10"平板电脑

希望对您有所帮助!!

关于android - 了解安卓尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14936720/

相关文章:

android - xamarin表单上的“Can' t Write”错误

android - 如何在textview android上设置多次点击

android - espresso:登录测试窗口而不是logcat

C++/二维 vector 的大小

Android:有没有办法让 fill_parent 不缩小以适应父级的父级?

c# - Wpf Dpi 和像素完美的 WriteableBitmap

android - 自定义背景后重置EditText的背景

php - 首次加载时在 php 中获取用户的屏幕和视口(viewport)尺寸

html - NSAttributedString 的 initWithHTML 的默认 DPI 是多少?

delphi - Windows 字体大小设置为 : (125%, 150%) 或 dpi 大于 96 (120,144) 时,快速报告显示或打印报告不正确