Android中UI控件的详细介绍(六)——ImageView

一、ImageView的类的机构
java.lang.Object
↘android.view.View
↘android.widget.ImageView

二、ImageView的常用属性
1、android:src 设置图片的来源。一般使用png或者jpg格式的图片,图片的名字可以使用的字符有【a-z0-9】,不能有大写字母,不能数字开头。
代码中对应的方法为:setImageResoutce(R.drawable.xxx)。
2、android:adjustViewBounds 用于设置ImageView是否调整自己的边界,来保持所显示图片的长度比例(不会截断图片)。默认为false。
3、android:maxHeight 设置ImageView的最大高度。需要先设置android:adjustViewBounds为true,否则不起作用。
4、android:maxWidth 设置ImageView的最大宽度。需要先设置android:adjustViewBounds为true,否则不起作用。
5、android:background 设置背景,src上的图片会覆盖在background的上方。
在代码中对于的方法为:setBackgroundResoutce(R.drawable.xxx);设置里面显示的图片。
6、android:scaleType 缩放类型, 设置所显示的图片如何缩放或移动,以适应ImageView的大小。可选项:fitCenter(默认值)、fitStart、fitEnd、fitXY、center、cengerCrop(居中裁剪)、centerInside、matrix。注意: 要把layout_height与layout_width设置为 match_parent 或者 固定值 时android:scaleType属性才有效。
各属性的效果:

  • 原图
    这里写图片描述

  • matrix(原尺寸截取多余部分):保持原图大小,从ImageView的左上角开始,以矩阵形式绘图,超出部分会被截取掉。
    这里写图片描述

  • fitXY(伸缩填满):把图片按照指定的大小在View中显示,拉伸(压缩)显示图片,不按照原来比例,填满View,如果未指定长宽,则受限于手机屏幕。
    这里写图片描述

  • fitStart:把图片按比例扩大(缩小)到View的宽度(或高度),不截取,显示在View 的上部分位置。
    这里写图片描述

  • fitCenter(默认值):把图片按比例扩大(缩小)到View的宽度(或高度),不截取,居中显示。
    这里写图片描述

  • fitEnd:把图片按比例扩大(缩小)到View的宽度(或高度),不截取,显示在View的下部分位置。
    这里写图片描述

  • center(原尺寸居中,多余的截取):以原图的几何中心点和ImageView的几何中心点为基准,按图片原来的size居中,不缩放,当图片的宽/高超过View的宽/高,则截取图片的居中部分显示,当图片小于View的宽/高时,只显示原图片的尺寸,不拉伸。
    这里写图片描述

  • centerInside(大图按比例缩小后完整居中,小图大小不变):以原图的几何中心店和ImageView 的几何中心点为基准,将图片的内容完整居中显示,如果原图较大,通过按比例缩小原来的size使得图片长/宽等于或小于ImageView的长/宽;原图较小的时候则不放大(fitCenter会放大);
    这里写图片描述

  • centerCrop(按比例伸缩,多余截取并使图填满ImageView):以原图的几何中心点和ImageView的几何大于View的长/宽,并按View的大小截取图片。当原图的Size大于ImageView时,按比例缩小图片,使得长宽中有一向等于ImageView,另一向大于ImageView。实际上,使得原图的Size大于等于ImageView。简言之,均衡的缩放图像(保持图片原始比例),使图片的两个座标(宽、高)都大于等于相应的视图座标,使图像位于视图的中央。
    这里写图片描述

三、ImageView常用方法:
1、setImageBitmap(Bitmap);用输入流或字节数组把图片设置到ImageView中去,可以利用BitmapFactory.decodeStream(),BitmapFactory.decodeByteArray()等方法返回Bitmap。

2、setImageDrawable(getResources().getDrawable(R.drawable.xxx))//设置图片源
3、setImageResource(R.drawaable.xxx)
4、setBackgroundResource(R.drawable.xxx) 设置背景
5、setScaleType(ScaleType.FIT_XY) 设置缩放模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章