假设程序里面目前只有一套图片资源放在drawable-mdpi文件下(只有一个这样的drawable文件夹)。那么好了, 现在在
情况1:
mdpi dpi=160 下,默认去drawable-mdpi取资源,这个是没错的;
情况2:
hdpi dpi=240 下,找不到drawable-hdpi,因为只有一个drawable文件夹,所以只能去drawable-mdpi中取资源;
情况3:
xhdpi dpi=320下,同情况2
情况4:
xxhdpi  同上以上是四种情况。那么现在问题来了,
在hdpi时取的是mdpi的资源,那是否会将其放大以适应屏幕。如果会放大,那是否按照ldpi(0.75)/mdpi(1)/hdpi(1.5)/xdpi(2.0)这个比例去放缩,问题之一问题之二
大家都知道现有手机几乎很少是刚好标准的dpi=240/320/...等等之类的,如
4.0in 854x480的手机, dpi = 245 左右
4.3in 1280x720的手机,dpi = 342左右
以上两种手机如果运行这个程序的话,它的缩放比例是怎么样的,是按就近的240、320的比例去缩放,还是?  如果是的话, 因为真实的dpi更大(dpi大,图形越显小),界面布局效果看起来是不是会有较小点,可能有点错位的感觉。问题之三
若以上两个问题的假设都成立, 那么有没有办法根据屏幕真实的dpi进行计算,合理地缩放drawable-mdpi中的图片资源呢?最近初涉android,还请高人进行解答。Thanks !Android界面drawable

解决方案 »

  1.   

    首先,你应该读一下这篇文档,有个大概的了解:
    Supporting Multiple Screens: http://developer.android.com/guide/practices/screens_support.html以下部分个人理解:
    问题一:首先我需要了解的是,你的图片是放在控件上,还是ActionBar上,还是其它?
    如果你是放在ActionBar上,你需要提供一组icon,针对于不同的dpi,放不同大小的ICON。
    如drawable-hdpi:48*48,drawable-mdpi:32*32,drawable-xhdpi:64*64,针对于launcher图标,又有另外一套标准。
    如果是普通的控件,比如说ImageView吧,此时,有个很重要的问题,你的ImageView的大小是否是以dp进行测量的,如果不是,而是以px来指定宽高的话,那界面在不同的分辨率下就会显得很奇怪了,你换图了也不管用。
    所以,先要保证你的UI元素是能适应多分辨率的,不要指望一张图能搞定多种分辨率。问题二:一般情况下,你的图和UI不需要进行精确定位DPI。
    对于UI来说,你可以针对不同的DPI,在不同的文件夹下写不同的布局,如:layout-h550dp,layout-h670dp,layout-h974dp,layout-sw480dp,layout-w600dp等等,看你需求。
    对于图片来说,还是之前的那些个文件夹。
    问题三:还是那句话,不要指望一张图能搞定多种分辨率。