Android中如何实现一个图片查看器
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=newURL(path);//[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中如何实现一个图片查看器”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推荐阅读
-
我的世界windows版怎么下载手机版
-
android(如何快速开发框架 小米note开发版MIUI,安卓6.0,怎么安装Xposed框架)
稳定版,你必须先根除。你上网搜索安卓可以叫别人s框架,对方可以把框架做成jar包,把这个jar包加载到项目目录的libs文件中使...
-
android(studio 虚拟机启动不了 android studio可以当模拟器用吗)
androidstudio可以当模拟器用吗?AmdCUP引导模拟器有点复杂。雷电模拟器上的抖音怎么登录不上?不是,闪电模拟调用...
-
从实践中学习手机抓包与数据分析(android 手机抓包app)
android手机抓包app?netcapture抓包精灵app(手机抓包工具)又名sslcapture,是什么专业的安卓手机抓...
-
android(studio全局搜索 android studio怎么看app界面)
androidstudio怎么看app界面?在设备桌面点击运用直接进入到App界面,就也可以参与其他你的操作了。android-...
-
怎么把android框架源代码拉到本地(android studio如何运行别人的源代码)
androidstudio如何运行别人的源代码?androidstudio点击刚建在列表中你选择导入module,导入即可在用...
-
android(studio2022年使用教程 怎么安装Android studio详细教程)
怎么安装Androidstudio详细教程?androidstudio中haxm直接安装的方法追加:1、简单的方法打开Andr...
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
怎么使用Android基准配置文件Baseline Profile方案提升启动速度...
-
HTML5如何实现禁止android视频另存为
HTML5如何实现禁止android视频另存为今天小编给大家分享一...
-
学java好还是学php好?