本文介绍了AndroID 简单的图片查看器源码实现,分享给大家,具体如下:
public class MainActivity extends Activity {private EditText et_path;private ImageVIEw iv; //创建handler 对象 // private Handler handler = new Handler(){ // // //处理消息 // public voID handleMessage(androID.os.Message msg) { // // Bitmap bitmap = (Bitmap) msg.obj;// iv.setimageBitmap(bitmap); // };};@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); // [1]找到我们关心的控件 et_path = (EditText) findVIEwByID(R.ID.et_path); iv = (ImageVIEw) findVIEwByID(R.ID.iv); }// [2]点击按钮进行查看 指定路径的源码public voID click(VIEw v) { new Thread(){public voID run() { try { //[2.1]获取访问图片的路径 String path = et_path.getText().toString().trim(); file file = new file(getCacheDir(),Base64.encodetoString(path.getBytes(),Base64.DEFAulT)); if (file.exists()&& file.length()>0) { //使用缓存 的图片 System.out.println("使用缓存图片 "); final Bitmap cacheBitmap = BitmapFactory.decodefile(file.getabsolutePath()); //把cacheBitmap 显示到iv上 // Message msg = Message.obtain(); // msg.obj = cacheBitmap; // handler.sendMessage(msg); //发消息 runOnUiThread(new Runnable() { public voID run() { iv.setimageBitmap(cacheBitmap); } }); }else{ //第一次访问 联网获取数据 System.out.println("第一次访问连接网络"); //[2.2]创建url对象 URL url = new URL(path); //[2.3]获取httpurlconnection httpURLConnection conn = (httpURLConnection) url.openConnection(); //[2.4]设置请求的方式 conn.setRequestMethod("GET"); //[2.5]设置超时时间 conn.setConnectTimeout(5000); //[2.6]获取服务器返回的状态码 int code = conn.getResponseCode(); if (code == 200) { //[2.7]获取图片的数据 不管是什么数据(txt文本 图片数据 )都是以流的形式返回 inputStream in = conn.getinputStream(); //[2.7]缓存图片 谷歌给我们提供了一个缓存目录 fileOutputStream fos = new fileOutputStream(file); int len = -1; byte[] buffer = new byte[1024];//1kb while((len=in.read(buffer))!=-1){ fos.write(buffer,len); } fos.close(); in.close(); //[2.8]通过位图工厂 获取bitmap(bitmap) final Bitmap bitmap = BitmapFactory.decodefile(file.getabsolutePath()); //这句API 不 管你在什么位置上调用 action都运行在UI线程里 runOnUiThread(new Runnable() { public voID run() { //run方法一定执行在UI线程 里 // [2.9]把bitmap显示到iv上 iv.setimageBitmap(bitmap); } });// Message msg = Message.obtain(); //使用msg的静态方法 可以减少对象的创建// msg.obj = bitmap;// handler.sendMessage(msg); //发消息 } } } catch (Exception e) { e.printstacktrace(); } };}.start();}}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android 简单的图片查看器源码实现全部内容,希望文章能够帮你解决Android 简单的图片查看器源码实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)