【问题标题】:How can I know what pixel density version of an image Android is using?我如何知道 Android 使用的图像的像素密度版本是多少?
【发布时间】:2016-06-26 14:10:30
【问题描述】:

我是 Android 开发的新手,我正在开发我的第一个应用程序。

我对如何正确处理具有不同像素密度的不同版本图像有以下疑问:

使用这个在线工具:https://romannurik.github.io/AndroidAssetStudio/nine-patches.html 我已经创建了 mdpihdpi xhdpixxhdpixxxhdpi 版本的图像,然后我在我的项目的 /res/ 目录中创建了这个结构:

然后我以这种方式在我的布局定义中使用这些图像:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="fill_parent"
    android:scaleType="fitXY"
    android:layout_height="250dp"
    android:src="@drawable/carbonara" />

这到底是什么意思? Android会根据使用设备的屏幕自动选择正确的版本?

在 Android Studio 活动预览中,我看到图像正确显示,但我如何检查显示的图像对于所选设备是否正确?

例如,在 Android Studio 预览中,我选择 Nexus 4 作为设备,我可以看到该设备使用的是什么图像吗?

我还将这些图像用于我的应用程序的 Java 代码中,例如我做这样的事情:

imgSlideView.setImageResource(R.drawable.amatriciana);

By R.drawable.amatriciana 我认为Android会自动检索适合所用设备屏幕的版本。我可以获取有关正在加载的确切版本的一些信息吗?

【问题讨论】:

  • 是的,应该选择并显示一个合适的图像,但是让我警告你:不要依赖于“Android Studio预习!”您需要走出去购买设备,,尤其是旧设备。如果您所在的城镇有一家二手 CD 商店、Goodwill 商店或任何其他“旧但使用过的电子产品”的小贩,请成为他们的客户。请注意杂货店出售的设备:很多 人在那里购买设备。许多Android兼容设备的制造商采取了许多“节省成本*”的捷径,而“视频”是一个“昂贵”的组件。... O_o ...

标签: java android android-imageview android-image android-screen-support


【解决方案1】:

究竟是什么意思? Android会根据所用设备的屏幕自动选择正确的版本?

确切地说,android 会根据运行您的应用的设备的显示屏自动选择最方便的尺寸。

在 Android Studio 活动预览中,我看到图像正确显示,但我如何检查显示的图像对于所选设备是否正确? 选择的图像应该相同(但大小/密度不同)。您将看到取决于您正在使用(或调试)的设备的预览,但另一台设备可能会看到另一个版本(平板电脑很可能会看到高密度图像)。

这些是我确定的答案,您可以在这里查看一些有用的信息:

Android Screen Support

【讨论】:

    【解决方案2】:

    Android 使用 mdpi、land(风景)、fr 等限定符来显示活动或任何基于布局的组件并正确处理资源。

    因此,存储在 land-large 文件夹中的 xml 文件只有在设备具有大屏幕尺寸(主要用于平板电脑)和横向时才会膨胀。

    相同的限定符用于处理不同语言的字符串资源。

    对于drawables情况,Android只会加载匹配设备配置的资源。

    【讨论】:

      猜你喜欢
      • 2022-08-12
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      相关资源
      最近更新 更多