2012-08-13 46 views
1

当您获得捆绑的图形资源时,将它们放置在drawable-hdpi,drawable-xhdpi等中,以便根据设备的DPI加载正确的图像。Android:根据DPI请求外部图像

处理从网络请求的外部图像时的标准是什么?

我想到的解决方案是使用配置限定符在资源文件夹中定义URL。例如。

values-ldpi 
-- http://website.com/logo24x24.jpg 
values-mdpi 
-- http://website.com/logo32x32.jpg 
values-hdpi 
-- http://website.com/logo48x48.jpg 
values-xhdpi 
-- http://website.com/logo64x64.jpg 

然后在布局XML中将图像定义为32x32dp。

这样做的常见方法是什么?以编程方式执行而不是使用配置限定符?

回答

0

如果您有能力运行servlet(或任何服务器端逻辑),最好将DPI作为参数发送并决定服务器上的文件名。 这将允许更改更容易,而无需更新客户端,也将减轻在客户端编写一长串值的过程。

+0

感谢。我选择了每个主密度组(120,160,240,320)的静态图形。如果存在无法识别的密度,我可能会将htaccess规则编写为默认hdpi。我将tvdpi视为hdpi。文件命名如下所示:image_32dpx32dp_240dpi.png将为48px x 48px。 – bdls 2012-08-21 11:26:41

0
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); 
       Display display = wm.getDefaultDisplay(); 
       int width = display.getWidth(); 


       URL url = null; 

       if (width < 360) { 
        url = new URL(start + "source/images/thumbnails/mid/" + urls.get(i)); 
       } else if (width < 1280) { 
        url = new URL(start + "source/images/thumbnails/big/" + urls.get(i)); 
       } else if (width < 1920){ 
        url = new URL(start + "source/images/" + urls.get(i)); 
       } 

它是基于自己的意见,ü可以使用不同大小