位置: 编程技术 - 正文

Android中View转换为Bitmap及getDrawingCache=null的解决方法(android view类)

编辑:rootadmin

推荐整理分享Android中View转换为Bitmap及getDrawingCache=null的解决方法(android view类),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:view android,android view生成图片,安卓webview替换,android view view,android view view,安卓webview切换,android view旋转,android view view,内容如对您有帮助,希望把文章链接给更多的朋友!

1.前言

  Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片;Coverflow中需要把一页一页的view转换为Bitmap、以便实现复杂的图形效果(阴影、倒影效果等);再比如一些动态的实时View为便于观察和记录数据、需要临时生成静态的Bitmap。

2.实现方法

  1)下面是笔者经常用的一个转换方法

 或者用如下方法:

  一般情况下,这个方法能够正常的工作。但有时候,生成Bitmap会出现问题(Bitmap全黑色)。主要原因是drawingCache的&#;大于系统给定的&#;。我们可以看一下buildDrawingCache()方法中的一段代码:

Android中View转换为Bitmap及getDrawingCache=null的解决方法(android view类)

上面的代码中,width和height是所要cache的view绘制的宽度和高度,所以(width * height * (opaque && !translucentWindow ? 2 : 4) 计算的是当前所需要的cache大小。ViewConfiguration.get(mContext).getScaledMaximumDrawingCacheSize()得到的是系统所提供的最大的DrawingCache的&#;。当所需要的drawingCache >系统所提供的最大DrawingCache&#;时,生成Bitmap就会出现问题,此时获取的Bitmap就为null。

所以在只需要修改所需的cache&#;就可以解决问题了。于是我们引入第二种方法:

  2)完美的解决方案

  view 使用 "getMeasuredWidth()" and "getMeasuredHeight()"方法计算长宽。此时,Bitmap就能正确获取了。

还有一种方法可以将VIEW保存成Bitmap:

[java] view plaincopyBitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_); //利用bitmap生成画布 Canvas canvas = new Canvas(bitmap); //把view中的内容绘制在画布上 view.draw(canvas);

Android软键盘的隐藏显示研究 Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。那么,弹出软键盘后必然会造成原有布

Android中实现上下左右都可滑动的ScrollView importjava.util.List;importandroid.content.Context;importandroid.graphics.Rect;importandroid.util.AttributeSet;importandroid.view.FocusFinder;importandroid.view.KeyEvent;importandroid.view.MotionEvent

Android GridView属性集合 GridView的一些特殊属性:1.android:numColumns=auto_fit//GridView的列数设置为自动2.android:columnWidth=dp//每列的宽度,也就是Item的宽度3.android:stretchMode=columnWidth//

标签: android view类

本文链接地址:https://www.jiuchutong.com/biancheng/386012.html 转载请保留说明!

上一篇:Android判断用户2G/3G/4G移动数据网络(android判断应用是否在前台)

下一篇:Android软键盘的隐藏显示研究(android键盘aosp)

  • 增值税专用发票抵扣期限
  • 建筑业增值税税负预警
  • 小规模纳税人可以开什么发票
  • 收取商标权使用费分录
  • 出资人和法人承担责任
  • 铲车用什么燃油
  • 税务证丢失可以注销吗
  • 长期股权投资的初始投资成本
  • 员工食堂餐费可以报销吗
  • 员工工资怎么计算公式
  • 生产经营所得如何缴纳个人所得税
  • 暂估出库是什么意思
  • 外出采购材料分录
  • 打官司败诉承担的费用
  • 进口关税退税计入什么科目
  • 样品不收钱怎么做会计分录
  • 小企业收到下列票据后,银行存款账户不变的是
  • 招聘发票可以抵扣吗
  • 生产企业出口退税的计算方法
  • 出口退税管理系统怎么登录
  • 损失性费用的会计科目有
  • 母子公司合并报表什么时候做
  • 疫情期间企业应该承担哪些责任
  • 暂估入库发票回来怎么做账
  • php header refresh
  • 暂存款账务处理
  • 电商快递费怎么做账
  • php数组函数大全
  • 其他业务成本主要有哪些
  • 出口增值税怎么计算公式
  • 实收资本主要包括哪些
  • 扣缴义务人需要办理税务登记吗
  • linux安装配置ftp
  • 为庆祝中秋而摆放的东西
  • 安装工程在工程建设中的主要内容有哪些
  • yolov3原理及代码解析
  • 在建工程完成后转入什么科目
  • 原生js获取元素高度
  • springboot aop切面
  • vue watch和computed
  • phpcms教程
  • 不是销售类的工作可以做什么
  • 自产自销的农产品可以抵税吗
  • 微服务网关作用
  • phpcms 生成首页
  • sqlserver2005使用
  • 百旺金赋抄报税指南
  • 阶段性减免社保费政策期限延长
  • 信用减值损失是负数是什么意思
  • 国家土地补偿款
  • 变更法人流程和资料
  • 补提折旧以前年度损益调整
  • 工资里计提五险什么意思
  • 广告宣传费纳税调整额怎么算
  • 会计软件什么范围分为单用户和多用户呢
  • mysqlsum查询慢
  • window10桌面有白色框
  • 系统升级中怎么办
  • linux怎么那么难用
  • xp密码忘记了怎么办大神
  • linux中使用less命令分屏查看
  • cocos-creator
  • js canvas压缩图片
  • node.js入门教程
  • opengl和directX区别
  • jsp手机号验证
  • bootstrap基础教程 源代码
  • linux怎么全盘备份
  • 批处理计数
  • linux 中的atq命令
  • jQuery.ajax 跨域请求webapi设置headers的解决方案
  • android拖拽
  • 怎么看网页的编码格式
  • js 判断
  • 成品油消费税税率包括哪些
  • 残疾人就业有哪些选择
  • 建筑企业如何
  • 国家税务总局辽宁省税务局
  • 2021税务稽查重点方向
  • 新四板企业哪里可以查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设