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的button和平铺拉伸的控件必定慘不忍睹,要尽量避免。事实上在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中的引用方式,也是使用@来引用。

所以这也是很easy的。不同像素的mipmap目录图片都是一样的使用。可是注意:在AS中,同一张图片放在drawable目录下和放在mipmap目录下显示效果是不一样的。在大小,缩放,像素上都可能有所差异。

把Android Studio和Eclipse比較着学习,他们既相似又有一定的差别。

Android ImageView 不显示JPEG图片 及 Android Studio中怎样引用图片资源的更多相关文章

  1. Android Studio中怎样引用图片资源

    随着不断接触Android Studio,越来越发现和Eclipse有着巨大的差别. 不管是表面的目录结构,还是内在对各种资源的管理. 本篇就来聊聊Android Studio中怎样来显示图片. 以及 ...

  2. Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框

     Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框 在Android早期的开发中,如果涉及到圆形图片的处理,往往需要借助于第三方的实现,见附录文章1,2.And ...

  3. Android 基础(设备显示密度/图片自适应

    1. 设备的 显示密度 是由 设备的尺寸 和 设备的分辨率 两个因素决定的. 相同分辨率设备的尺寸越大显示密度越小, 相同尺寸的设备,分辨率越高显示密度越高. 2. 显示密度等级:  160 / 24 ...

  4. Android将view保存为图片并放在相册中

    在Android中,可以将view保存为图片并放在相册中,步骤为 view->bitmap->file,即先将view转化为bitmap,再将bitmap保存到相册中. 需要将红框标注的v ...

  5. android——获取ImageView上面显示的图片bitmap对象

    获取的函数方法为:Bitmap bitmap=imageView.getDrawingCache(); 但是如果只是这样写我们得到的bitmap对象可能为null值,正确的方式为: imageView ...

  6. Android View加载圆形图片且同时绘制圆形图片的外部边缘边线及边框:LayerDrawable实现

     Android View加载圆形图片且同时绘制圆形图片的外部边缘边线及边框:LayerDrawable实现 LayerDrawable实现的结果和附录文章1,2,3中的layer-list一致. ...

  7. MFC对话框显示BMP图片

    1.MFC对话框显示BMP图片我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) ...

  8. LISTVIEW显示JPEG缩略图

    http://www.ctsys.cn/files/SHOW_FILES.ASPX?ID=22 许多的JPEG图片浏览器(如由我设计的<JPEG浏览缩放器>),都可以将JPEG缩略图放置到 ...

  9. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

随机推荐

  1. android mvp高速开发框架介绍(dileber使用之图片下载工具)

    这几天忙着工作- 今天抽时间又把框架的bug处理了一下--并且把volley的源代码改动了一下 android mvp框架:dileber(https://github.com/dileber/dil ...

  2. UVA10370 Above Average

    Above Average It is said that 90% of frosh expect to be above average in their class. You are to pro ...

  3. Nagios监控nginx服务具体过程

    1在nginx 服务器上安装nrpe客户端: Nginx的服务须要监控起来.不然万一down了而不及时修复,会影响web应用.例如以下web应用上面启动的nginx后台进程[root@lb-net-2 ...

  4. ES 處於“initializing”狀態,此時主節點正在嘗試將分片分配到集群中的數據節點。 如果您看到分片仍處於初始化或未分配狀態太長時間,則可能是您的集群不穩定的警告信號。

    指標要點: Cluster status: 如果集群狀態為黃色,則至少有一個副本分片未分配或丟失. 搜索結果仍將完成,但如果更多的分片消失,您可能會丟失數據. 紅色的群集狀態表示至少有一個主分片丟失, ...

  5. IPK僵尸网络 看看其传播手法

    转自:http://www.freebuf.com/vuls/154975.html 一.IPK僵尸网络概述 IPK僵尸家族是自2012年底就开始出现并长期持续活跃在境外的DDoS僵尸网络.2016年 ...

  6. nyoj--120--校园网络(scc+缩点)

    校园网络 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 南阳理工学院共有M个系,分别编号1~M,其中各个系之间达成有一定的协议,如果某系有新软件可用时,该系将允许一些其 ...

  7. [Tomcat]Tomcat安全设置

    1.关闭服务器端口:server.xml默认有下面一行: <Server port="8005" shutdown="SHUTDOWN"> 这样允许 ...

  8. 将字符串序列化Object格式

    using Newtonsoft.Json; 首先引用  Newtonsoft.Json; 定义一个字符串 string str = "[{'ID':8.0,'PAGEID':201.0,' ...

  9. vue-cli 3.0 安装和创建项目流程

    使用前我们先了解下3.0较2.0有哪些区别 一.3.0 新加入了 TypeScript 以及 PWA 的支持二.部分命令发生了变化: 1.下载安装  npm install -g vue@cli 2. ...

  10. jmeter的认识

    jmeter JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. 它能够很好的支持各种常见接 ...