文章标题 如何从网上获取图片

本文介绍了如何在Android应用中从网上获取并显示图片,通过使用BitmapFactory和HttpURLConnection实现网络图片的加载。主要步骤包括设置权限,创建网络请求,解析图片流并显示到ImageView中。
摘要由CSDN通过智能技术生成

1.如何从网上获取图片
main里面步骤代码
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
* 添加权限
*/
public class MainActivity extends AppCompatActivity {

private ImageView imageView;
private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        if (msg.what == 0){
            Bitmap bitmap = (Bitmap) msg.obj;
            imageView.setImageBitmap(bitmap);
        }
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageView = (ImageView) findViewById(R.id.image);
}

//点击事件...获取网络上的一张图片
public void getPic(View view){

    getPicture();



}

private void getPicture() {

    new  Thread(){
        @Override
        public void run() {
            //图片的字符串路径
            String path = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1503854327078&di=08bdf32f7a117deafd580ca006b80a67&imgtype=0&src=http%3A%2F%2Fnews.k618.cn%2Fpic%2Fdmyx%2F201505%2FW020150501335817970176.jpg";

            try {
                //1.将路径转为url
                URL url = new URL(path);
                //2.根据url路径打开一个连接...HttpURLConnection extends URLConnection继承关系,,,遵循http协议的链接对象
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

                //3.设置
                urlConnection.setRequestMethod("GET");//设置请求的方式,,,默认是get
                urlConnection.setConnectTimeout(5000);//设置连接超时
                urlConnection.setReadTimeout(5000);//设置读取超时

                //4.获取响应的状态码...判断
                int responseCode = urlConnection.getResponseCode();
                if (responseCode == 200){//成功
                    //5.服务器上的资源以什么形式返回...一字节流的形式
                    InputStream inputStream = urlConnection.getInputStream();

                    //6.把返回的字节流转换为图片资源 ..bitmap
                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);

                    //设置....使用handler发送到主线程
                    //imageView.setImageBitmap(bitmap);

                    Message message = Message.obtain();
                    message.what = 0;
                    message.obj = bitmap;
                    handler.sendMessage(message);
                }else {
                    //0..1不能继续在使用
                    Toast.makeText(MainActivity.this,"请求失败",Toast.LENGTH_SHORT).show();
                }


            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }.start();
}

}
//xml里面代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值