android中如何实现一个图片查看器-mile米乐体育
android中如何实现一个图片查看器
本篇内容主要讲解“android中如何实现一个图片查看器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“android中如何实现一个图片查看器”吧!
具体代码如下:
publicclassmainactivityextendsactivity{privateedittextet_path;privateimageviewiv;//创建handler对象//privatehandlerhandler=newhandler(){//////处理消息//publicvoidhandlemessage(android.os.messagemsg){////bitmapbitmap=(bitmap)msg.obj;//iv.setimagebitmap(bitmap);//};};@overrideprotectedvoidoncreate(bundlesavedinstancestate){super.oncreate(savedinstancestate);setcontentview(r.layout.activity_main);//[1]找到我们关心的控件et_path=(edittext)findviewbyid(r.id.et_path);iv=(imageview)findviewbyid(r.id.iv);}//[2]点击按钮进行查看指定路径的源码publicvoidclick(viewv){newthread(){publicvoidrun(){try{//[2.1]获取访问图片的路径stringpath=et_path.gettext().tostring().trim();filefile=newfile(getcachedir(),base64.encodetostring(path.getbytes(),base64.default));if(file.exists()&&file.length()>0){//使用缓存的图片system.out.println("使用缓存图片");finalbitmapcachebitmap=bitmapfactory.decodefile(file.getabsolutepath());//把cachebitmap显示到iv上//messagemsg=message.obtain();//msg.obj=cachebitmap;//handler.sendmessage(msg);//发消息runonuithread(newrunnable(){publicvoidrun(){iv.setimagebitmap(cachebitmap);}});}else{//第一次访问联网获取数据system.out.println("第一次访问连接网络");//[2.2]创建url对象urlurl=new;//[2.3]获取httpurlconnectionhttpurlconnectionconn=(httpurlconnection)url.openconnection();//[2.4]设置请求的方式conn.setrequestmethod("get");//[2.5]设置超时时间conn.setconnecttimeout(5000);//[2.6]获取服务器返回的状态码intcode=conn.getresponsecode();if(code==200){//[2.7]获取图片的数据不管是什么数据(txt文本图片数据)都是以流的形式返回inputstreamin=conn.getinputstream();//[2.7]缓存图片谷歌给我们提供了一个缓存目录fileoutputstreamfos=newfileoutputstream(file);intlen=-1;byte[]buffer=newbyte[1024];//1kbwhile((len=in.read(buffer))!=-1){fos.write(buffer,0,len);}fos.close();in.close();//[2.8]通过位图工厂获取bitmap(bitmap)finalbitmapbitmap=bitmapfactory.decodefile(file.getabsolutepath());//这句api不管你在什么位置上调用action都运行在ui线程里runonuithread(newrunnable(){publicvoidrun(){//run方法一定执行在ui线程里//[2.9]把bitmap显示到iv上iv.setimagebitmap(bitmap);}});//messagemsg=message.obtain();//使用msg的静态方法可以减少对象的创建//msg.obj=bitmap;//handler.sendmessage(msg);//发消息}}}catch(exceptione){e.printstacktrace();}};}.start();}}
到此,相信大家对“android中如何实现一个图片查看器”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注mile米乐体育,继续学习!