Android:根据DPI请求外部图像

时间:2012-08-13 10:53:08

标签: android image resolution dpi

当您拥有捆绑的图形资源时,请将它们放在drawable-hdpidrawable-xhdpi等中,以便根据设备的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。

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

2 个答案:

答案 0 :(得分:0)

如果您能够运行servlet(或任何服务器端逻辑),最好将DPI作为参数发送,并对服务器上的文件名做出决策。 这样可以更轻松地进行更改,而无需更新客户端,还可以简化在客户端中编写长值列表的过程。

答案 1 :(得分: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));
                } 

根据自己的意见,你可以使用不同的尺寸