2 h18681506264 h18681506264 于 2016.02.26 11:09 提问

安卓关于下载图片和下载文件的问题

图片

安卓中下载图片有几种方法?用URL下载?

文件

文件都是从服务器中下载下来后解析吗?

3个回答

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.26 11:37
已采纳

如果自己加载的话,需要自己写网络去请求url地址进行下载。类似于这样

 URL url = new URL(uri);
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                conn.setRequestMethod("GET");
                conn.setReadTimeout(10000);

                if (conn.getResponseCode() == 200) {
                    InputStream fis =  conn.getInputStream();
                    ByteArrayOutputStream bos = new ByteArrayOutputStream();
                    byte[] bytes = new byte[1024];
                    int length = -1;
                    while ((length = fis.read(bytes)) != -1) {
                        bos.write(bytes, 0, length);
                    }
                    picByte = bos.toByteArray();
                    bos.close();
                    fis.close();

                    Message message = new Message();
                    message.what = 1;
                    handle.sendMessage(message);
                }


            }catch (IOException e) {
                e.printStackTrace();
            }

第二种就是用开源的一些框架,比如ImageLoader:

 public class ImageLoaderPicture {

    private DisplayImageOptions options;

    public ImageLoaderPicture(Context context) {

        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPriority(Thread.NORM_PRIORITY - 2)
        .denyCacheImageMultipleSizesInMemory()
        .discCacheFileNameGenerator(new Md5FileNameGenerator())
        .tasksProcessingOrder(QueueProcessingType.LIFO).enableLogging() 
        .memoryCache(new WeakMemoryCache())                                 
        .build();
        ImageLoader.getInstance().init(config);

        options = new DisplayImageOptions.Builder()
        .showStubImage(0)
        .showImageForEmptyUri(0)
        .showImageOnFail(0)
        .cacheInMemory().cacheOnDisc()
        .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
        .bitmapConfig(android.graphics.Bitmap.Config.RGB_565)
        .build();
    }

    public DisplayImageOptions getOptions() {
        return options;
    }

    public void setOptions(DisplayImageOptions options) {
        this.options = options;
    }

最后还可以使用谷歌官方提供的框架Volley进行。

caozhy
caozhy   Ds   Rxr 2016.02.26 11:24

用httpclient下载,用universal-image-loader框架下载。必须先下载才能读取文件。

rui888
rui888   Ds   Rxr 2016.02.26 11:41

安卓 有自带的http 的包,直接用

h18681506264
h18681506264 那个包叫什么??
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!