概述
前言:
最近比较焦虑,感觉移动端的前景不太好,有些心塞。
android的如何显示大图?
因为虚拟机对手机内存的限制,超过了就会内存溢出导致程序崩溃,假如我们必须要显示一个大图怎么办呢?
一般有两个方案:
1.将图片分割显示
2.将图片用webview去显示
网上大多是第一种的解决方案,而第二种方案则少,所以这边讲解下第二种方案
第二种方案分两种
- 1.网络的url图片,直接
<img src= “url”> 标签就行,比较简单
- 2.加载放在本地的图片
假如图片放在drawable下面
首先写一个工具类
/** * @description 将bitmap转成base64 * @date: 2019/5/6 * @author: MR.su */ public static String bitmapToBase64(Bitmap bitmap) { String result = null; ByteArrayOutputStream baos = null; try { if (bitmap != null) { baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); baos.flush(); baos.close(); byte[] bitmapBytes = baos.toByteArray(); result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (baos != null) { baos.flush(); baos.close(); } } catch (IOException e) { e.printStackTrace(); } } return result; } /** * base64转为bitmap */ public static Bitmap base64ToBitmap(String base64Data) { byte[] bytes = Base64.decode(base64Data, Base64.DEFAULT); return BitmapFactory.decodeByteArray(bytes, 0, bytes.length); }
String imgBase64 = Base64ToBitmap.bitmapToBase64( BitmapFactory.decodeResource(getResources(), R.drawable.adj));
上面的代码意思是
BitmapFactory.decodeResource(getResources(), R.drawable.adj) //将本地的drawable图片转成bitmap
Base64ToBitmap.bitmapToBase64 //调用工具类将bitmap转成base64
标签
<img src="data:image/png;base64, imgBase64" /> //imgBase64就是将bitmap转成base64的字符串
总结:
方法比较简单,但是很使用
最后
以上就是多情冥王星为你收集整理的android显示大图片的全部内容,希望文章能够帮你解决android显示大图片所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复