2013-04-23 63 views
0

虽然Android可绘制支持多个屏幕是一个相当强大的工具,尤其是它的drawable-sw ??? dp选择器,我缺乏一个非常重要的功能,那就是支持屏幕尺寸像素选择器(它可以实现为drawable-sw?px)。屏幕像素分辨率可绘制的选择器

想象一下,您有一个应用程序,您希望将某些图形元素缩放到N%的屏幕尺寸。如果您使用基于dpi的屏幕大小的目录,则您的图像在hdpi屏幕上会模糊不清,如果您使用基于dpi的目录,则它们将在大屏幕上模糊不清。

当然,您可以将这些可绘图放置到drawables-sw320dp-hdpi,drawables-sw320dp-mdpi等,但这会产生各种图像版本(和APK大小)和测试环境所需的爆炸。

目前我通过把这种可绘制资产文件夹,并选择编程他们workarounding这个问题,但是这肯定不是一个理想的解决方案,并从资产加载可绘制不flawlesly工作无处不在。

您如何解决此问题?

+1

我的问题是几乎重复http://stackoverflow.com/questions/16171390/screen-pixel-resolution-drawable-selector(对不起,搜索没有显示它),但我认为它更好地解释它:-) 。 – Blackhex 2013-04-23 14:14:36

+0

你把链接到当前页面 – Borzh 2015-04-08 20:16:17

+0

你是对的。不幸的是,我不知道现在的联系是什么。 – Blackhex 2015-04-10 20:40:01

回答

0

在将它们放到项目中之前缩放图形,然后将它们放到方便的文件夹中。例如假设你有一个bg.jpg,制作700x100,600x80,500x60,400x50的4个版本,并且将它们放在drawable-xhdpi,drawable-hdpi,drawable-mdpi,drawable-ldpi中。如果它不起作用,尝试使用矢量图形,它们的像素将在每次缩放时进行预先计算。最后,您可以使用Matrix类进行缩放,但它们可能很难学习和使用。

+0

请仔细阅读我的问题,你没有回答实际的话题。 – Blackhex 2013-04-23 14:08:44

+0

好的下面的答案是我目前如何解决它,要么你会得到更大的apk大小或处理它在你的应用程序,据我所知没有其他选项 – 2013-04-23 14:13:30

+0

好吧,事实上,你是把资源绘制 - ?dpi文件夹让我感到困惑,因为这会产生问题无法解决问题。资源必须位于资产中才能以编程方式加载。 – Blackhex 2013-04-23 14:16:31