background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。
此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用Android:scaleType控制图片的缩放方式,示例代码如下:
<ImageView xmlns:android="schemas.android.com/apk/res/and…"
android:id="@+id/splash_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/splash_bg"
android:background="@color/black"
android:scaleType="centerInside"/>
说明:centerInside表示按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度。
注意:控制的图片为资源而不是背景,即android:src=”@drawable/splash_bg”,而非android:background=”@drawable/splash_bg”。程序中动态加载图片也类似,如:应该imgView.setImageResource(R.drawable.);而非imgView.setBackgroundResource(R.drawable.);
附:更详细的scaleType说明:
ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY
1.android:scaleType=”center”
保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
2.android:scaleType=”centerCrop”
以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(指的是ImageView的宽和高都要填满),原图超过ImageView的部分作裁剪处理。
3.android:scaleType=”centerInside”
以原图完全显示为目的,将图片的内容完整居中显示,通过按比例缩小原图的size宽(高)等于或小于ImageView的宽(高)。如果原图的size本身就小于ImageView的size,则原图的size不作任何处理,居中显示在ImageView。
4.android:scaleType=”matrix”
不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。
结尾
最后,针对上面谈的内容,给大家推荐一个Android资料,应该对大家有用。
首先是一个知识清单:(对于现在的Android及移动互联网来说,我们需要掌握的技术)
泛型原理丶反射原理丶Java虚拟机原理丶线程池原理丶 注解原理丶注解原理丶序列化 Activity知识体系(Activity的生命周期丶Activity的任务栈丶Activity的启动模式丶View源码丶Fragment内核相关丶service原理等) 代码框架结构优化(数据结构丶排序算法丶设计模式) APP性能优化(用户体验优化丶适配丶代码调优) 热修复丶热升级丶Hook技术丶IOC架构设计 NDK(c编程丶C++丶JNI丶LINUX) 如何提高开发效率? MVC丶MVP丶MVVM 微信小程序 Hybrid Flutter
接下来是资料清单:(敲黑板!!!)
领取通道在这里给你们摆上了~
点击我的GitHub免费获取
1.数据结构和算法
2.设计模式
3.全套体系化高级架构视频;七大主流技术模块,视频+源码+笔记
4.面试专题资料包(怎么能少了一份全面的面试题总结呢~)
不论遇到什么困难,都不应该成为我们放弃的理由!共勉~
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。