简易图片查看器
2015-11-20 15:59
225 查看
学习了一个网络图片查看器,具体代码如下:
其中,Message.obtain();是指能够复用旧消息,以达到减小内存占用的目的。
public class MainActivity extends Activity { protected static final int success = 1; protected static final int fail = 2; protected static final int error = 3; private EditText et_path; private ImageView iv; private Button check; private Handler handler=new Handler(){ public void handleMessage(android.os.Message msg){ switch(msg.what){ case success: Bitmap bitmap=(Bitmap) msg.obj; iv.setImageBitmap(bitmap); break; case fail: Toast.makeText(MainActivity.this, (String)msg.obj, 1).show(); break; case error: Toast.makeText(MainActivity.this, (String)msg.obj, 1).show(); break; } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_path = (EditText) findViewById(R.id.et_path); iv = (ImageView) findViewById(R.id.iv); check=(Button)findViewById(R.id.check); check.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { final String path=et_path.getText().toString().trim(); new Thread(){ public void run(){ try{ URL url=new URL(path); HttpURLConnection co=(HttpURLConnection)url.openConnection(); co.setRequestMethod("GET"); co.setConnectionTimeout(5000); int code=co.getResponseCode(); if(code==200){ InputStream in=co.getInputStream(); Bitmap bitmap=BitmapFactory.decodeStream(in); Message msg=Message.obtain(); msg.obj=bitmap; msg.what=success; handler.sendMessage(msg); }else{ Message msg = Message.obtain(); msg.what = FAILED; msg.obj = "请求失败"; handler.sendMessage(msg); } }catch(Exception e){ Message msg = Message.obtain(); msg.what = ERROR; msg.obj = "出现异常"; handler.sendMessage(msg); e.printStackTrace(); } }; }.start(); } }); } }
其中,Message.obtain();是指能够复用旧消息,以达到减小内存占用的目的。
相关文章推荐
- C#自定义控件的实现
- 微信朋友圈的实现(图片查看,手势放大、缩小)
- 一个很好用的图片查看类:JTSImageViewController
- FastRawViewer for Mac(RAW图片查看工具)已激活版 v1.3.6破解
- Viewpager根据图片数量动态增加引导点
- 自定义ImageView
- Android仿微信朋友圈图片展示效果,图片查看器
- Qt 仿QQ图片浏览器
- Android仿百度图片查看功能
- ListView BaseAdapter中的观察者模式
- Linux驱动部分-(一)内核模块的编写
- 日期时间格式正则表达式
- CSS样式呈现优先级
- .net上传大文件不成功
- UUID 和 GUID 的区别
- 高程5.3 Date类型
- UIAccessibilityElement
- Uva 674 Coin Change(水动规)
- SQL的内连接与外连接
- 基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎