Android ImageView 不显示JPEG图片

今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里需要设置成setVisibility(View.VISIBLE),但图片没有显示出来,换成PNG或其它的JPEG格式的图片确可以正常的显示。
原因:显示的图片大小为5.39K,图片格式有损坏,所以不能正常显示。
解决:换一张图片,或重新生成JPEG图片。
如果还是不能正常显示,建议在设置完VISIBLE后,调用如下方法:
iv.setVisibility(View.VISIBLE); view.requestLayout();
Call this when something has changed which has invalidated the layout of this view. This will schedule a layout pass of the view tree.
我们可以理解为重新布局了一下view。
用途:有时我们在改变一个view 的内容之后可能会造成显示出现错误,比如写ListView的时候重用convertview中的某个TextView 可能因为前后填入的text长度不同而造成显示出错,此时我们可以在改变内容之后调用requestLayout方法加以解决。
建议:png是一种无损格式,JPG是有损格式。JPG在处理颜色很多的图片时,根据压缩率的不同,有时会去掉一些肉眼识别差距较小的中间颜色。但是PNG对于无损这个基本要求,会严格保留所有的色彩数。 所以。图片尺寸大,或者色彩数量多特别是渐变色的多的时候,PNG的体积会明显大于JPG。
Android的界面能用png最好是用png,因为32位的png颜色过渡平滑且支持透明。jpg是像素化压缩过的图片,质量已经下降了,再拿来做9patch的按钮和平铺拉伸的控件必然惨不忍睹,要尽量避免。其实在res下icon用的都是png格式,就是说Google推荐使用的是png格式的图片。
对于颜色繁杂的,比如照片墙纸之类的图片(有些应用的启动画面喜欢搞这种),那用jpg是最好不过了,这种图片压缩前压缩后肉眼分辨几乎不计,如果保存成png体积将是jpg的几倍甚至几十倍,严重浪费体积。
解释:什么是9patch,Patch的中文意思是“片,块”的意思,那这里按中文的意思来说就是9片或9块。因此可想而知这个图片会被分为9片,如下图所示:
9patch只解释这么多,需要详细了解的可以继续深入研究。
Android Studio中如何引用图片资源
在Eclipse中根据图片的像素大小把.png或.jpg的图片放在drawable文件夹下,如drawable-hdpi,drawable-ldpi,drawable-mdpi,drawable-xhdpi,drawable-xxhdpi。同一张图片放在不同的drawable文件夹下,显示的时候会有所不同。但是在xml中引用的时候是一样的:android:src=@drawable/pic 或者android:background=@drawable/pic 。
但是到Android Studio中就不一样了,发现没有这么多的drawable目录了,而只有一个drawable文件夹。取而代之的是出现了很多mipmap文件夹,如mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi,mipmap-xxhdpi。如图所示:
首先尝试把图片放在drawable中,然后在xml中使用android:src=@drawable/pic或者android:background=@drawable/pic。使用,发现没有问题,完全可以显示。但是为什么有这么多mipmap呢?
Google官方的解释是性能优化,占用内存小等等,总之mipmap这个形式比drawable好。So,推荐我们在Android Studio中使用mipmap。那好,我们把图片放在mipmap文件夹下,那怎么在xml中使用呢?
android:src=@mipmap/pic
非常类似图片放在drawable中的引用方式,也是使用@来引用。所以这也是非常简单的,不同像素的mipmap文件夹图片都是一样的使用。但是注意:在AS中,同一张图片放在drawable文件夹下和放在mipmap文件夹下显示效果是不一样的,在大小,缩放,像素上都可能有所差异。把Android Studio和Eclipse比较着学习,他们既相似又有一定的区别。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# android
# imageview
# Android中ImageView.src设置图片拉伸、填满控件的方法
# 浅谈Android获取ImageView上的图片
# 和一个有可能遇到的问题
# Android 自定义imageview实现图片缩放实例详解
# Android中ImageView实现选择本地图片并显示功能
# Android自定义控件之圆形、圆角ImageView
# Android实现ImageView阴影和图层效果
# Android ImageView 固定宽高比例的实现方法
# 放在
# 的是
# 这么多
# 我们可以
# 正常显示
# 都是
# 是一种
# 平铺
# 是一样的
# 又有
# 推荐使用
# 有所不同
# 将是
# 所示
# 来做
# 上都
# 较小
# 惨不忍睹
# 取而代之
# 那好
相关文章:
建站主机助手选型指南:2025年热门推荐与高效部署技巧
全景视频制作网站有哪些,全景图怎么做成网页?
如何在云主机快速搭建网站站点?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Android自定义listview布局实现上拉加载下拉刷新功能
如何获取开源自助建站系统免费下载链接?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
北京网站制作公司哪家好一点,北京租房网站有哪些?
微信推文制作网站有哪些,怎么做微信推文,急?
建站10G流量真的够用吗?如何应对访问高峰?
如何通过山东自助建站平台快速注册域名?
如何用西部建站助手快速创建专业网站?
如何快速搭建安全的FTP站点?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
宝塔面板如何快速创建新站点?
网站app免费制作软件,能免费看各大网站视频的手机app?
教程网站设计制作软件,怎么创建自己的一个网站?
如何快速生成ASP一键建站模板并优化安全性?
建站之星展会模版如何一键下载生成?
智能起名网站制作软件有哪些,制作logo的软件?
在线教育网站制作平台,山西立德教育官网?
如何高效完成自助建站业务培训?
制作企业网站建设方案,怎样建设一个公司网站?
利用JavaScript实现拖拽改变元素大小
中山网站制作网页,中山新生登记系统登记流程?
php json中文编码为null的解决办法
山东网站制作公司有哪些,山东大源集团官网?
如何选择适配移动端的WAP自助建站平台?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
企业微网站怎么做,公司网站和公众号有什么区别?
淘宝制作网站有哪些,淘宝网官网主页?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
如何在橙子建站中快速调整背景颜色?
C++如何编写函数模板?(泛型编程入门)
如何在IIS中新建站点并配置端口与IP地址?
太平洋网站制作公司,网络用语太平洋是什么意思?
制作销售网站教学视频,销售网站有哪些?
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何快速上传自定义模板至建站之星?
黑客如何通过漏洞一步步攻陷网站服务器?
移民网站制作流程,怎么看加拿大移民官网?
网站制作网站,深圳做网站哪家比较好?
如何用花生壳三步快速搭建专属网站?
建站主机是否属于云主机类型?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
javascript基本数据类型及类型检测常用方法小结
*请认真填写需求信息,我们会在24小时内与您取得联系。