问题??

用ImageView控件方法:public void setImageBitmap(Bitmap bm)
来显示生成的bimap,结果在图片显示区域显示一片空白,而且其他控件颜色没变化,造成Imageveiw显示图片不出来的假象。

问题原因是:

布局背景我设置为白色,而解码生成的bitmap刚好在白色背景下显示看不到一点图片痕迹,在显示图片的区域看到的只是一片空白,至于为什么bitmap在白色先显示不出来的原因暂还没想通。若你也遇到类似问题建议跟换背景试试。

解决方法是:
将布局文件中ImageView所在的LinearLayout或其他Layout布局的背景颜色设置为黑色,这样之前一直显示图片不出来的图片终于露出原形。

小结:
这个问题算是个怪胎了,用H264解码生成的Bitmap放上去显示没一点问题,而MPEG4解码出来的Bitmap放上去就是显示不出来,之前怀疑解码生成的Bitmap有问题,经过反复验证,确认解码生成的Bitmap没有问题,才猜测Imageview显示有问题,费劲脑汁的跟换Imageview显示图片的方法。转来转去,搞了半天还是木有解决问题,后堡垒灵光一线,把布局背景颜色设置为黑色,结果图片显示出来了,太诡异了。搞了半天还是碰运气解决滴。

其实在我确认解码生成的Bitmap没问题之后,我应该想到为什么图片在默认的黑色背景下显示没一点问题,估计是被H264解码生成Bitmap显示没问题跟忽悠了,跟我定位问题时带了干扰。直接省去了那一环节。看来还是要程序化。
当问题找不到原因时,一定要每一个环节去对比验证,即使是最不可能发生的环节,往往这就是问题原因所在。
遇到问题,不用怕,解决它,仅此而已。

在此小结记录下byte[] 、Bitmap与Drawbale 三者直接的转换
1、byte[] ->Bitmap
Bitmap Bitmap = BitmapFactory.decodeByteArray(data, offset, length);
2、Bitmap->byte[] 这种转换我们应该将Bitmap看成是一张图片,这样我们想获取它的数据,就知道要通过流,而且是byte类型流,于是很容易记住转换方法 。
(1)ByteArrayOutputStream out = new ByteArrayOutputStream();//获取流
(2)bitmap.compress(CompressFormat.JPEG, 100, out);//将图片数据按照指定格式和质量压缩到某个流中,
(3)byte[] buf = out.toByteArray();//将流转换为byte[]
Bitmap 、Drawbale直接的转换方法特别好记,只有利用他们之间搭建着桥梁,BitmapDrawable,剩下的就是利用向上转型和向下转型的思路就可以搞定。
3、Bitmap->Drawbale 向上转型,因为Drawbale更靠近图片文件。
Drawable drawable = new BitmapDrawable(bitmap);
4、Drawbale->Bitmap 向下转型
Bitmap bitma = ((BitmapDrawable) bit).getBitmap();

至于byte[] 与Drawbale之间的转换,那么Bitmap又相当于是桥梁。大家都懂得。

http://blog.csdn.net/sunnyfans/article/details/7914219

最新文章

  1. ps教程连接
  2. noi 2985 数字组合
  3. DataTable 排序
  4. 设置navigation baritem方法
  5. 1.6.6 De-Duplication(重复数据删除)
  6. Cocos开发中Visual Studio下libcurl库开发环境设置
  7. Clang 与 LLVM
  8. G - A+B for Input-Output Practice (VI)
  9. C++类型转换总结
  10. Swift实现OC中的单例模式
  11. java.lang.OutOfMemoryError: Java heap space错误及处理办
  12. 【Centos】yum 安装mariaDB
  13. MaxPooling的作用
  14. 20162330 实验二 《Java面向对象程序设计》 实验报告
  15. 在ASP.NET Core中构建路由的5种方法
  16. 【Teradata】安装SQL Assistant和Administrator 16.20(含查看.net版本)
  17. Windows系统中python3.7安装数据可视化模块Matplotlib、numpy的各种方法汇总
  18. 大数据项目测试<二>项目的测试工作
  19. Zend Optimizer,Zend Guard Loader 和 Zend Opcache 三者之间的区别
  20. Asp.Net MVC学习总结之过滤器详解(转载)

热门文章

  1. COJ 0138 NOIP201108计算系数
  2. C++ 哈希表
  3. java中的“包”与C#中的“命名空间
  4. 基于jsp+servlet图书管理系统之后台用户信息删除操作
  5. DedeCMS安装及目录结构
  6. ionic框架前端生产环境的简单部署
  7. Node.js 博客实例(六)留言功能
  8. 我对Laravel ThinkPHP Yii symfony2 CI cakephp 的看法
  9. openwrt network interface(openwrt中的网络接口)
  10. android屏蔽状态栏显示