android 请求图片,Android请求网络图片

一、xml布局,定义一个按钮(点击获取)和一个ImageView用来装图片

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:orientation="vertical"

tools:context=".MainActivity" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/pic"

/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/get_url"

android:text="get_url"

/>

二、activity代码

public class MainActivity extends Activity {

ImageView PIC;

Button BTN_GET;

Bitmap bmp;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

find_id();

key_things();

}

private void key_things() {//这里主要是创建一个线程来去请求URL

// TODO Auto-generated method stub

BTN_GET.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Thread_geturl thread_geturl = new Thread_geturl();

thread_geturl.start();//启动线程

}

});

}

public class Thread_geturl extends Thread{

@Override

public void run() {

// TODO Auto-generated method stub

String S_url = "http://image.biaobaiju.com/uploads/20180918/15/1537256494-ZnSKMzEoBI.jpeg"; //这是你要获取的网络图片

try {

URL myUrl = new URL(S_url);//实例化你要请求的URL

URLConnection url_conn = myUrl.openConnection();//url建立连接

InputStream in = url_conn.getInputStream();//

BitmapFactory.Options option = new BitmapFactory.Options();

option.inSampleSize = 1;//这里的意思是图片的宽和高是原来的1/1,也就是说这里的数字是分母,

bmp = BitmapFactory.decodeStream(in,null, option);

//解释一下decodeStream(解码流)的三个参数

//第一个参数是将原始数据转化为位图的输入流

//第二个参数不是很了解

//第三个意思是图像是否应该被完全解码,或者只返回大小

Message msg = new Message();

msg.what = 0;//可以理解为表示码或者是身份

handler.sendMessage(msg);//用handler发送结果到UI线程

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

Handler handler = new Handler(){//这里是接受消息,从其他线程传过来的消息

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

switch (msg.what) {

case 0:

PIC.setImageBitmap(bmp);

break;

default:

break;

}

}

};

private void find_id() {

// TODO Auto-generated method stub

PIC = (ImageView) findViewById(R.id.pic);

BTN_GET = (Button) findViewById(R.id.get_url);

}

}

结果:

e80805ffdc33d06e77f359763be40805.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值