ImageView继承自View组件,主要功能用来显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用ImageView来显示.ImageView可以适用于任何布局中,并且Android为其提供了缩放和着色的一些操作.

1.foreground src 和background属性的区别

  1. background指的是背景,foreground指的是前景,src指的是内容;三者可以同时使用;
  2. src填入图片时,是按照图片大小直接填充,并不会进行拉伸;而使用background和foreground填入图片,则会根据ImageView的大小进行拉伸
  3. background和foreground是所有view的属性,总是缩放到view大小,不受scaleType影响;而src是ImageView的特有属性,它会受到scaleType的影响

上述三者在使用中,它们的层级比较如下:
foreground>src>background

2. adjustViewBounds属性用法

ImageView为我们提供了adjustViewBounds属性,用于设置缩放时是否保持原图长宽比

3. 设置透明度

imageView设置透明度主要有以下几种方法:

  • android:alpha //0f-1f
  • setAlpha(Float alpha)//0f-1f
  • setImageAlpha(int alpha);//API>=16;0-255

4. 设置图片的方式

1) 设置前景

foreground

xml布局中:

android:foreground="@color/blue"
android:foreground="@mipmap/ic_launcher"
android:src="@mipmap/ic_launcher"

java代码中:

//设置前景图
image.setForeground(getResources().getDrawable(R.mipmap.ic_launcher));
//设置前景色
image.setForeground(getResources().getDrawable(R.color.blue));

注意
关于设置foreground无效问题,View源码片段:

case R.styleable.View_foregroumdif(targetSdkVersion>=24||this instanceof FrameLayout){setForeground(a.getDrawable(attr))}break;

2) src

xml布局中:

android:src="@mipmap/ic_launcher"

java代码中:

//1. setImageDrawable(Drawable drawable)
image.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher));//不会变形
//2. setImageBitmap(Bitmap bitmap)
stringPath = Environment.getExternalStorageDirectory()+"/test.jpg";
Bitmap bitmap = BitmapFactory.decodeFile(path);
image.setImageBitmap(bitmap);//不会变形
//3. setImageResource(int resId)
image.setImageResource(R.drawable/ic_launcher);//不会变形

3) 设置背景

xml布局中;

android:background="@mipmap/ic_launcher"
android:background="@color/blue"

java代码中:

//1. setBackground(Drawable background)
image.setBackground(getResouces().getDrawable(R.drawable.ic_launcher));
//2. setBackgroundResource(int resId)
image.setBackgroundResource(R.drawable.ic_launcher);//变形
//3. setBackgroundDrawable(Drawable background)
image.setBackground(getResouces().getDrawable(R.drawable.ic_launcher));//setBackgroundColor(int color)
image.setBackgroundColor(getResources().getColor(R.color.blue));

ScaleType属性

android:scaleType用于设置显示的图片如何缩放或者移动以适应ImageView的大小,Java代码中可以通过imageView.setScaleType(ImageView.ScaleType.CENTER);来设置.可选值如下:

  • MATRIX/matrix: 用矩阵的方式绘制,从ImageView的左上角开始绘制原图,不缩放图片,超过ImageView部分作裁剪处理;
  • CENTER/center: 保持原图的大小,显示在ImageView的中心,当当尺寸大于ImageView的尺寸,超过部分裁剪处理
  • **CENTER_CROP/centerCrop: ** 保持纵横比缩放图片,直到完全覆盖ImageView为止(指的是ImageView的宽和高都要填满),超过的部分作裁剪处理;
  • **CENTER_INSIDE/centerInside: ** 将图片的内容完整居中显示,通过按比例缩小原尺寸的宽高等于或小于ImageView的宽高.如果原图的尺寸本身就小于ImageView的尺寸,则原图像的尺寸不作任何处理,居中显示在ImageView
  • **FIT_XY/fitXY: ** 把原图宽高进行不保持原比例放缩,直到填充满ImageView为止
  • **FIT_START/fitStart: ** 把原图按比例放缩使之等于ImageView的宽高使之居中显示,缩放后放于ImageView的左上角;
  • **FIT_CENTER/fitCenter: ** 把原图按比例放缩使之等于ImageView的宽高使之居中显示,缩放后放于中间;
  • **FIT_END/fitEnd: ** 把原图按比例放缩使之等于ImageView的宽高使之居中显示,缩放后放于ImageView的右下角;

Android ImageView属性相关推荐

  1. android imageview 的常用属性,android imageview scaletype属性

    android imageview scaletype属性并不是很常用,以至于到现在我才注意到,但是在某些应用中,这是一个很重要的属性,比如相册应用. ImageView的Scaletype决定了图片 ...

  2. Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性

    本文转载自[Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性]并做了排版的修改(http://www.cnblogs.c ...

  3. Android ImageView,ImageButton的scaleType属性与adjustViewBounds属性

    ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...

  4. Android ImageView 的scaleType 属性

    Android ImageView 的scaleType 属性 枚举值 ImageView.ScaleType CENTER 使图像在视图中居中,但不执行缩放. ImageView.ScaleType ...

  5. android布局的属性大全,Android布局属性大全

    第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:la ...

  6. android布局属性

    android:layout_alignParentRight="true" 使当前控件的右端和父控件的右端对齐.这里属性值只能为true或false,默认false. andro ...

  7. Android ImageView图片自适应

    网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView     android:id=" ...

  8. Android布局属性详解之RelativeLayout

    RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_cent ...

  9. android布局属性详解(转)

    原文地址:http://www.cnblogs.com/jqyp/archive/2010/10/23/1859182.html RelativeLayout用到的一些重要的属性: 第一类:属性值为t ...

  10. (转载)android:visibility和android:scaleType 属性

    1.android:visibility="gone" 其有三个属性:visible显示:invisible显示黑背景条:gone不显示 2.android:scaleType属性 ...

最新文章

  1. 《HTML5移动应用开发入门经典》—— 2.4 HTML5中的HTML语法变化
  2. 小蠢笔记:从继承特性来看构造函数
  3. linux-压缩与解压缩(gz,zip,tar,jar,war)
  4. 2021年中国家装行业数字化转型研究报告
  5. ML_Review_PCA(Ch4)
  6. ASP.NET无法识别的配置节connectionStrings的解决方法
  7. nero burning rom 2021绿色版安装及使用教程
  8. 软件工程第二次自考总结(2020年8月)
  9. 有两个杯子,一个5升一个6升,很多水,请问如何取得3升水
  10. win10怎么将计算机放桌面壁纸,windows10自带壁纸在哪里_win10电脑自带的桌面壁纸保存在哪...
  11. ArcGIS js api中关于比例尺单位改为中文的方式
  12. 循环闹钟c语言,闹钟设置四天一个循环,自定义周期循环提醒便签
  13. html蒙尘效果,vr看车.html
  14. 16bit灰度图像映射到8bit显示
  15. phpstrom查看代码总行数_PHP统计代码行数的小代码
  16. 【信号处理】心电信号PQRST峰值检测matlab工具箱
  17. 字节跳动2019春招研发部分编程题汇总
  18. IT工作者的职业发展常备工具书(来自猎头的推荐)——《程序员羊皮卷》连载(2)
  19. 如何按照TFL模板给出的顺序出表或者QC
  20. word 如何设置起始页码

热门文章

  1. Android选择DNK出现“NDK does not contain any platforms”
  2. 述职答辩提问环节一般可以问些什么_2.50 述职报告与评审提问注意事项
  3. java 拉勾网,拉钩网java笔试题分享
  4. linux bluefish制作网页,基于Linux文本模式的网页编辑器Bluefish
  5. Bootstrap入门基础(二)
  6. STM32 ESP8266 无线模块使用
  7. 腾讯天龙八部手游服务器账号上线,天龙八部手游服务器的注册已达到上限 服务器注册上限怎么解决...
  8. Windows调出屏幕键盘的步骤
  9. Hive 字符串转日期
  10. 一起学爬虫(Python) — 23 自动化详解2