我是一个新的Android开发人员。
我们的设计师为我的应用程序提供了一些高分辨率图像,但我知道有很多设备(不同的屏幕)支持Android平台。
我的问题是。如何从高分辨率图像中获取所有dpi(hdpi-mdpi-ldpi-xx)
资源?
答案 0 :(得分:1)
如果我有你的问题,这是解决方案:) http://coh.io/adpi/
答案 1 :(得分:1)
只需在xhdpi文件夹中添加所有图片,Android就会在文件夹中递归找到它们,直到它从设备屏幕密度中找到所请求的照片。
来自文档:
在运行时,系统可确保最佳显示效果 对于任何给定资源,当前屏幕具有以下过程:
系统根据大小使用适当的替代资源 和当前屏幕的密度,系统使用任何尺寸和 您的应用程序中提供的密度特定资源。例如, 如果设备具有高密度屏幕并且应用程序请求a 可绘制资源,系统查找可绘制资源目录 最符合设备配置的。取决于另一个 可用的替代资源,具有hdpi的资源目录 限定符(例如drawable-hdpi /)可能是最佳匹配,所以 system使用此目录中的drawable资源。
- 醇>
如果没有匹配 资源可用,系统使用默认资源和比例 根据需要调高或调低当前屏幕尺寸和密度 “默认”资源是那些未标记为a的资源 配置限定符。例如,drawable /中的资源 默认的可绘制资源。系统假定为默认值 资源是针对基线屏幕尺寸和密度而设计的 是正常的屏幕尺寸和中等密度。就这样,系统 为高密度屏幕和向下缩放默认密度资源 适用于低密度屏幕。但是,当系统是 寻找密度特定的资源,但没有找到它 密度特定的目录,它不会总是使用默认资源。 系统可以改为使用其他密度特定资源之一 为了在缩放时提供更好的结果。例如,何时 寻找低密度资源并且它不可用,系统 更喜欢缩小资源的高密度版本, 因为系统可以轻松地将高密度资源扩展到 相比之下,低密度,0.5,人工制品更少 将中密度资源缩放0.75倍。更多 有关Android如何选择替代资源的信息 匹配配置限定符到设备配置,读取 Android如何找到最匹配的资源。
如果您想要遵循良好实践,无论采用其他资源的方式,这都是将您的hdpi资源扩展到较低密度的比率。
希望有所帮助:)
答案 2 :(得分:0)
您可以使用链接@karvoynistas发布并this would also be a must read.
转换它们并为每个分辨率创建适当的图像请注意,如果您想让图像自动调整大小,您根本不需要做任何事情......(您只能定义一个文件夹并让系统调整它们的大小。优点:您的应用程序会减轻重量。 :它可能会更慢,并且由于堆大小有限,您可能会遇到大图像内存问题...)