android开发获取本地图片上传,Android应用开发安卓实现从互联网上获取图片并保存到本地目录中...

本文将带你了解Android应用开发安卓实现从互联网上获取图片并保存到本地目录中,希望本文对大家学Android有所帮助。

<

因为是对互联网和内存操作,所以我们要添加如下权限:

package com.itfom.getpicfromnet; import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL; import android.annotation.SuppressLint;import android.app.Activity;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView; @SuppressLint("HandlerLeak")public class MainActivity extends Activity {     private ImageView iv_pic;    private Button btn_get;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn_get = (Button) findViewById(R.id.btn_get);        iv_pic = (ImageView) findViewById(R.id.iv_img);        //设置监听事件        btn_get.setOnClickListener(new OnClickListener() {             @Override            public void onClick(View v) {                //开启子线程                new Thread(){                    public void run() {                        try {                            String urlPath = "https://pic7.nipic.com/20100607/4791134_172835008083_2.jpg";                            URL url = new URL(urlPath);                            HttpURLConnection conn = (HttpURLConnection) url.openConnection();                            conn.setConnectTimeout(6*1000);  // 注意要设置超时,设置时间不要超过10秒,避免被android系统回收                            if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");                            InputStream inSream = conn.getInputStream();                            //把图片保存到项目的根目录                            readAsFile(inSream, new File(Environment.getExternalStorageDirectory()+"/"+"test.jpg"));                            Message msg=new Message();                            msg.what=0;                            handler.sendMessage(msg);                        } catch (Exception e) {                            e.printStackTrace();                        }                    };                }.start();            }        });    }    public static void readAsFile(InputStream inSream, File file) throws Exception{        FileOutputStream outStream = new FileOutputStream(file);        byte[] buffer = new byte[1024];        int len = -1;        while( (len = inSream.read(buffer)) != -1 ){            outStream.write(buffer, 0, len);        }        outStream.close();        inSream.close();    }    //创建Handler    Handler handler=new Handler(){        public void handleMessage(android.os.Message msg) {            if(msg.what==0){                //开始绑定数据                iv_pic.setImageBitmap(BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/test.jpg"));            }        };    };}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值