我如何知道Android使用的图像的像素密度版本?

时间:2016-06-26 14:10:30

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

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

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

使用此在线工具:https://romannurik.github.io/AndroidAssetStudio/nine-patches.html我创建了 mdpi hdpi xhdpi xxhdpi xxxhdpi 版本的图片,然后我将此结构创建到我项目的 / res / 目录中:

enter image description here

然后我以这种方式将这些immage用于我的布局定义:

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

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

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

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

我也将这些图像用于我的应用程序的Java代码,例如我做了类似的事情:

imgSlideView.setImageResource(R.drawable.amatriciana);

通过 R.drawable.amatriciana 我认为Android自动检索适用于所用设备屏幕的版本。我是否可以获得有关正在加载的版本的信息?

2 个答案:

答案 0 :(得分:1)

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

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

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

对于drawables案例,Android只会加载与设备配置相匹配的资源。

答案 1 :(得分:1)

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

根据应用程序运行设备的显示,android会自动选择最方便的大小。

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

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

Android Screen Support