我在Android开发方面绝对是新手,我正在开发我的第一个应用程序。
我有以下疑问,如何正确处理具有不同像素密度的不同版本的图像:
使用此在线工具:https://romannurik.github.io/AndroidAssetStudio/nine-patches.html我创建了 mdpi , hdpi xhdpi , xxhdpi 和 xxxhdpi 版本的图片,然后我将此结构创建到我项目的 / res / 目录中:
然后我以这种方式将这些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自动检索适用于所用设备屏幕的版本。我是否可以获得有关正在加载的版本的信息?
答案 0 :(得分:1)
Android使用mdpi,land(landscape),fr等限定符来显示活动或任何基于布局的组件并正确处理资源。
因此,只有当设备具有较大的屏幕尺寸(主要用于平板电脑)和横向方向时,存储在 land-large 文件夹中的xml文件才会被充气。
相同的限定符用于处理不同语言的字符串资源。
对于drawables案例,Android只会加载与设备配置相匹配的资源。
答案 1 :(得分:1)
究竟是什么意思? Android会根据所用设备的屏幕自动选择正确的版本吗?
根据应用程序运行设备的显示,android会自动选择最方便的大小。
在Android Studio活动预览中,我看到immage正确显示了但是如何检查immage显示的对于所选设备是否正确? 所选图像应相同(但尺寸/密度不同)。您将看到预览,具体取决于您使用的设备(或调试),但另一个设备可能会看到另一个版本(平板电脑很可能会看到高密度图像)。
这些是我确定的答案,您可以在这里查看一些有用的信息: