【问题标题】:Android - How can I optimize the download to Images a Server? because is very slow the images downloadAndroid - 如何优化到图像服务器的下载?因为图片下载很慢
【发布时间】:2014-06-22 09:58:04
【问题描述】:

我用“imgUrl”保存我下载图片的URL,用“BitmapFactory”缩小而不浪费RAM,但是因为有几张图片,所以需要很多,你知道更好的方法吗?.

public class DownloadImage extends AsyncTask<Object, Void, Bitmap> {
        ImageView imagen;
        String imgUrl="";
        Bitmap bitm;

        protected Bitmap doInBackground(Object... params){
            imgUrl = (String) params[0];
            imagen =  (ImageView) params[1];
            try {

                URL imageUrl = new URL(imgUrl); /*Using the URL for download the image*/

                HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
                conn.connect();



                BitmapFactory.Options options = new BitmapFactory.Options(); 
                options.inSampleSize = 3;

                bitm = BitmapFactory.decodeStream(conn.getInputStream(), new Rect(0, 0, 0, 0), options);
            } catch (IOException e) {
                Log.e("catch", e+"");
            }
            return bitm;
        }

        protected void onPostExecute(Bitmap result){
            imagen.setImageBitmap(result);
            super.onPostExecute(result);
        }
    }

【问题讨论】:

标签: android image optimization android-asynctask


【解决方案1】:

不确定您要优化什么,但有几种方法可以优化在线获取的应用中使用的图像。

  1. 如果图片很大,你的应用会显示不同尺寸的图片,你可以在服务器上存储不同尺寸的同一张图片,根据需要下载你需要的尺寸。这样可以节省数据传输,并使图像加载(例如在缩略图列表中)更快、更流畅。

  2. 您显然可以使用缓存,通常是使用 RAM 和磁盘的二级缓存,将下载的图像存储在磁盘上,而不是再次下载。

  3. 您可以在加载之前使用不同的 API 来分析图像并加载您需要的大小。这样,您可以更快地加载图像并在视图/缓存中使用更少的内存来保存它。

您可以阅读有关此here的更多详细信息

【讨论】:

    猜你喜欢
    • 2015-09-10
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多