使用HttpURLConnection查看图片
2016-02-03 18:41
453 查看
[1].创建线程
[2].Handler的创建
[3]创建Message的方法
new Thread(){ @Override public void run() { super.run(); } };
[2].Handler的创建
private android.os.Handler handler =new android.os.Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); //处理消息操作 };
[3]创建Message的方法
/** *Message msg=new Message; *使用静态方法,减少new的次数,提高效率 */ Message msg = Message.obtain();
package jacky.httpurlimage;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
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 static final int REQUESTSUCCESS = 0;
private static final int REQUESTNOTFIND = 1;
private EditText et_path;
//创建Handler对象
private android.os.Handler handler =new android.os.Handler(){
@Override
public void handleMessage(Message msg) {
//处理消息
super.handleMessage(msg);
switch (msg.what) {
case REQUESTSUCCESS:
Bitmap bitmap=(Bitmap)msg.obj;
iv_show.setImageBitmap(bitmap);
break;
case REQUESTNOTFIND:
Toast.makeText(getApplicationContext(),"网络连接失败!",Toast.LENGTH_LONG);
break;
}
}
};
private ImageView iv_show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_path = (EditText) findViewById(R.id.et_path);
iv_show = (ImageView) findViewById(R.id.iv_show);
}
public void click(View v){
//开辟线程
new Thread(){
@Override
public void run() {
super.run();
try {
String path=et_path.getText().toString().trim();
URL url=new URL(path);
//获得连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setReadTimeout(5000);
int code = conn.getResponseCode();
if (code == 200) {
InputStream in = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(in);
/** *Message msg=new Message; *使用静态方法,减少new的次数,提高效率 */ Message msg = Message.obtain();
//设置传出的数据
msg.obj = bitmap;
msg.what = REQUESTSUCCESS;
handler.sendMessage(msg);
} else {
Message msg = Message.obtain();
msg.what = REQUESTNOTFIND;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
}
相关文章推荐
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- C#线程间不能调用剪切板的解决方法
- upload上传单张图片
- 图片引发的溢出危机(图)
- C#实现把彩色图片灰度化代码分享
- C#将图片和字节流互相转换并显示到页面上
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- C#停止线程的方法
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- C#子线程更新UI控件的方法实例总结
- C#线程队列用法实例分析
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- 随鼠标移动的图片或文字特效代码
- CSS 图片横向排列实现代码
- C#实现将Email地址转成图片显示的方法
- 超级经典一套鼠标控制左右滚动图片带自动翻滚
- 用css实现图片垂直居中的使用技巧