Android ImageView使用详解(系列教程三)
短信预约 -IT技能 免费直播动态提醒
目录
一、ImageView简介
ImageView是Android开发中最常用的组件之一,主要用于显示图片,但是它不只是能显示图片,任何Drawable对象都可以使用它来显示。
二、ImageView基本使用
下面实现在布局文件中添加一个ImageView,用来展示图片,仅仅设置了ImageView的宽高、背景色、图片的class="lazy" data-src等基本属性。实现效果如下图所示。
此处设置背景色是由于有时候图片并不能完整的填充整个ImageView,添加背景色方便查看显示效果。
三、ImageView常用属性
- android:maxWidth:ImageView的最大宽度。
- android:maxHeight:ImageView的最大高度。
- android:adjustViewBounds:用于调整ImageView的边界,使得ImageView和图片有一样的长宽比例,通常配合maxWidth、maxHeight一起使用。
- app:class="lazy" data-srcCompat:设置要显示的Drawable对象的引用。
- android:scaleType:设置图片的缩放类型,后面详细介绍。
四、几种图片的加载方法
ImageView加载图片的方式有如下几种:
- 在布局文件中设置属性app:class="lazy" data-srcCompat加载本地图片。
- setImageResource(int resId):加载drawable文件夹中的资源文件。
- setImageURI(Uri):加载手机中的图片文件。
- setImageBitmap(Bitmap):加载Bitmap。
- setImageDrawable(Drawable):加载 Drawable。
五、ImageView的缩放类型
ImageView的android:scaleType属性用于设置图片的缩放类型,共有如下8种缩放类型。
- android:scaleType="centerInside":图片按比例缩小或保持原来尺寸,显示在ImageView中央。
- android:scaleType="fitStart":图片按比例放大或缩小到ImageView的宽度或高度,显示在ImageView的左上角,图片会完整显示。
- android:scaleType="fitEnd":图片按比例放大或缩小到ImageView的宽度或高度,显示在ImageView的右下角,图片会完整显示。
- android:scaleType="center":按照图片的原始大小显示在ImageView的中央,若图片尺寸大于ImageView宽高,则只显示部分,图片不会进行缩放。
- android:scaleType="matrix":经过matrix变换的图片显示在ImageView的左上角,若缩放后的图片尺寸大于ImageView宽高,则只显示部分。该模式需要与ImageView.setImageMatrix(Matrix matrix)配合使用,因为该模式需要用于指定一个变换矩阵用于指定图片如何展示,其实其他的7种模式都是通过ImageView在内部生成了相应的变换矩阵。
设置matrix示例如下:
imageView.setScaleType(ImageView.ScaleType.MATRIX); //设置为矩阵模式Matrix matrix = new Matrix(); //创建一个单位矩阵matrix.setTranslate(100, 100); //平移x和y各100单位matrix.preRotate(30); //顺时针旋转30度matrix.setScale(0.5, 0.5); //设置缩放比例imageView.setImageMatrix(matrix); //设置并应用矩阵
- android:scaleType="fitXY":将图片拉伸至填充整个ImageView,不按比例缩放。
- android:scaleType="fitCenter":默认使用这种模式。按比例放大或缩小图片至ImageView的宽高,然后居中显示。
- android:scaleType="centerCrop":图片等比例缩放至完全填充整个ImageView,居中显示,并将放大后的多余部分裁剪掉。
原创不易,点个赞再走呗。。。
来源地址:https://blog.csdn.net/qq_34215018/article/details/127650822
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341