ImageView(图像视图),①background平凡指的都是

 

本节引言:

本节介绍的UI基础控件是:ImageView(图像视图),见名知意,正是用来显示图像的2个View可能说控件!

本节上课的内容如下:

  • ImageView的src属性和blackground的区别;

  • adjustViewBounds设置图像缩放时是或不是按长度宽度比

  • scaleType设置缩放类型

  • Drawable下动态改变图片颜色

 

本节引言:

本节介绍的UI基础控件是:ImageView(图像视图),见名知意,正是用来突显图像的1个View或然说控件!
官方API:ImageView;本节讲解的始末如下:

  1. ImageView的src属性和blackground的区别;
  2. adjustViewBounds设置图像缩放时是不是按长度宽度比
  3. scaleType设置缩放类型
  4. 最简易的绘图圆形的ImageView

1.src属性和background属性的分别:

在API文书档案中我们发现ImageView有多少个能够安装图片的属性,分别是:src和background

常识:
①background司空见惯指的都以背景,而src指的是内容!!

②当使用src填入图片时,是比照图片大小直接填充,并不会议及展览开拉伸
而利用background填入图片,则是会基于ImageView给定的宽窄来进展拉伸

在意:要是想src举办拉伸沾满全数空间能够开始展览如下设置

android:adjustViewBounds="true"<!--不保持长宽比(图片可能变形)-->  
android:scaleType="fitXY"<!--贴合X边,贴合Y边-->  

本节引言:

本节介绍的UI基础控件是:ImageView(图像视图),见名知意,即是用来体现图像的3个View大概说控件!
官方API:ImageView;本节讲解的内容如下:

  1. ImageView的src属性和blackground的区别;
  2. adjustViewBounds设置图像缩放时是不是按长度宽度比
  3. scaleType设置缩放类型
  4. 最不难易行的绘图圆形的ImageView

1.src属性和background属性的区分:

在API文书档案中我们发现ImageView有多个可以安装图片的脾性,分别是:src和background

常识:

①background常常指的都以背景,而src指的是内容!!

②当使用src填入图片时,是依照图片大小间接填充,并不会议及展览开拉伸

而利用background填入图片,则是会基于ImageView给定的宽窄来进展拉伸

写代码验证分裂:

写个简易的布局测试下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/LinearLayout1"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical"  
    tools:context="com.jay.example.imageviewdemo.MainActivity" >  

    <ImageView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:background="@drawable/pen" />  

    <ImageView  
        android:layout_width="200dp"  
        android:layout_height="wrap_content"  
        android:background="@drawable/pen" />  

    <ImageView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:src="@drawable/pen" />  

    <ImageView  
        android:layout_width="200dp"  
        android:layout_height="wrap_content"  
        android:src="@drawable/pen" />  

</LinearLayout> 

作用图如下:

图片 1

1.src属性和background属性的区分:

在API文书档案中大家发现ImageView有七个能够设置图片的质量,分别是:src和background

常识:

①background不以为奇指的都以背景,而src指的是内容!!

②当使用src填入图片时,是根据图片大小一向填充,并不会举办拉伸

而接纳background填入图片,则是会根据ImageView给定的增幅来进展拉伸

1)写代码验证分歧:

写个大约的布局测试下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/LinearLayout1"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical"  
    tools:context="com.jay.example.imageviewdemo.MainActivity" >  

    <ImageView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:background="@drawable/pen" />  

    <ImageView  
        android:layout_width="200dp"  
        android:layout_height="wrap_content"  
        android:background="@drawable/pen" />  

    <ImageView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:src="@drawable/pen" />  

    <ImageView  
        android:layout_width="200dp"  
        android:layout_height="wrap_content"  
        android:src="@drawable/pen" />  

</LinearLayout> 

效率图如下:

图片 2

结果分析:

宽高都以wrap_content那就一律,是原图大小,不过,当大家向来了宽或许高的话,
差异就肯定了,blackground完全填充了一切ImageView,而src还是是那么大,
而且他居中了哦,那就提到到了ImageView的另叁本品质scaleType了!
别的还有一些,那里大家说了只设置width恐怕height哦!参加大家同时安装了
width和height的话,blackground依然填充,不过,src的大大小小大概产生改变啊!
比如,我们测试下上面那段代码:

<ImageView  
        android:layout_width="100dp"  
        android:layout_height="50dp"  
        android:src="@drawable/pen" />

运作效果图:

图片 3

PS:scaleType上边会讲~


2.Java代码中安装blackground和src属性:

前景(对应src属性):setImageDrawable( );
背景(对应background属性):setBackgroundDrawable( );

1)写代码验证差异:

写个简易的布局测试下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/LinearLayout1"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical"  
    tools:context="com.jay.example.imageviewdemo.MainActivity" >  

    <ImageView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:background="@drawable/pen" />  

    <ImageView  
        android:layout_width="200dp"  
        android:layout_height="wrap_content"  
        android:background="@drawable/pen" />  

    <ImageView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:src="@drawable/pen" />  

    <ImageView  
        android:layout_width="200dp"  
        android:layout_height="wrap_content"  
        android:src="@drawable/pen" />  

</LinearLayout> 

功效图如下:

图片 4

结果分析:

宽高都以wrap_content那就同一,是原图大小,可是,当大家永恒了宽或许高的话,
差距就旗帜鲜明了,blackground完全填充了总体ImageView,而src依旧是那么大,
而且他居中了哦,那就涉及到了ImageView的另三脾性质scaleType了!
其它还有少数,这里我们说了只设置width可能height哦!参加大家还要设置了
width和height的话,blackground依旧填充,但是,src的大小可能发生变更啊!
比如,大家测试下下边这段代码:

<ImageView  
        android:layout_width="100dp"  
        android:layout_height="50dp"  
        android:src="@drawable/pen" />

运作效果图:

图片 5

PS:scaleType上边会讲~


2)消除blackground拉伸导致图片变形的不二法门

在前边的作用图中的第二个Imageview中大家能够见到图片已经被拉伸变形了,
长方形变成了纺锤形,对于和本身一样有细小情感障碍的人来说,分明是不可承受的,
有没有措施去设置呢?答案自然是一些,作者暂且知道的有以下二种艺术:

  • 以此适用于动态加载ImageView的,代码也日益,只要在添加View的时候,把大小写死就能够了

    LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(48, 48);

        layout.addView(ibtnPen, layoutParam); 
    
  • 除外动态加载view,更加多的时候,大家如故会经过xml布局的方式引入ImageView的
    化解方法也简单,正是通过drawable的Bitmap财富文件来成功,然后blackground属性设置为该文件即可!
    这几个xml文件在drawable文件夹下创造,那个文件夹是要和谐创造的啊!!

pen_bg.xml:

<bitmap  
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@id/pen_bg"  
    android:gravity="top"  
    android:src="@drawable/pen"  
    android:tileMode="disabled" >  
</bitmap>

上述代码并简单精通,测度我们最迷惑的是titleMode属性吧,这些脾气是平铺,正是大家windows设置
背景时候的平铺,八个小图标铺满整个显示器捏!记得了吗!不记得本人能够尝试!disabled正是把她给禁止了!

就算上边那串简单的代码,至于调用方法如下:

动态: ibtnPen.setBacklgroundResource(R.drawable.penbg);

静态: android:background = “@drawable/penbg”


3.adjustViewBounds设置缩放是或不是保存原图长度宽度比

ImageView为大家提供了adjustViewBounds属性,用于安装缩放时是还是不是保持原图长度宽度比!
单独设置不起功能,须求卓殊maxWidth和maxHeight属性一起行使!而前面那五个属性
也是内需adjustViewBounds为true才会生效的~

  • android:maxHeight:设置ImageView的最大高度
  • android:maxWidth:设置ImageView的最大开间

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <!-- 正常的图片 -->
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:src="@mipmap/meinv" />
    <!-- 限制了最大宽度与高度,并且设置了调整边界来保持所显示图像的长宽比-->
    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:adjustViewBounds="true"
        android:maxHeight="200px"
        android:maxWidth="200px"
        android:src="@mipmap/meinv" />

</LinearLayout>

运行效果图:

图片 6

结果分析:
大的不得了图片是未曾别的处理的图片,尺寸是:541374;而下边包车型大巴拾分的话大家透过maxWidth和maxHeight
限制ImageView最大开间与低度为200px,正是最五只好呈现200
200的图纸,大家又设置了三个
adjustViewBounds =
“true”
调动大家的边界来维系图片的长度宽度比,此时的ImageView宽高为是128*200~

2)消除blackground拉伸导致图片变形的法门

在后面包车型的士功力图中的第四个Imageview中我们能够见到图片已经被拉伸变形了,
星型变成了纺锤形,对于和本人一样有微小性障碍的人来说,显著是不可接受的,
有没有措施去设置呢?答案肯定是一些,小编一时半刻知道的有以下三种艺术:

  • 本条适用于动态加载ImageView的,代码也日渐,只要在增加View的时候,把大小写死就足以了

    LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(48, 48);

        layout.addView(ibtnPen, layoutParam); 
    
  • 除此之外动态加载view,越来越多的时候,大家依然会因而xml布局的艺术引入ImageView的
    消除方法也不难,便是通过drawable的Bitmap财富文件来完结,然后blackground属性设置为该文件即可!
    那些xml文件在drawable文件夹下创造,这么些文件夹是要自身创建的哦!!

pen_bg.xml:

<bitmap  
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@id/pen_bg"  
    android:gravity="top"  
    android:src="@drawable/pen"  
    android:tileMode="disabled" >  
</bitmap>

上述代码并简单驾驭,猜想大家最迷惑的是titleMode属性吧,这么些个性是平铺,正是我们windows设置
背景时候的平铺,五个小图标铺满全部荧屏捏!记得了啊!不记得自己能够尝试!disabled正是把他给禁止了!

就算下边那串简单的代码,至于调用方法如下:

动态: ibtnPen.setBacklgroundResource(R.drawable.penbg);

静态: android:background = “@drawable/penbg”


3)设置折射率的标题

说完前边四个界别,接着再说下setAlpha属性咯!那个非常的粗略,这一个性情,唯有src时才是有功力的!!


4.scaleType安装缩放类型

android:scaleType用于安装展现的图片如何缩放恐怕移动以适应ImageView的轻重
Java代码中能够通过imageView.setScaleType(ImageView.ScaleType.CENTEHighlander);来安装~
可选值如下:

fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,
但是图片的横纵比可能会发生改变

fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,
缩放完成后将图片放在ImageView的左上角

fitCenter:同上,缩放后放于中间;

fitEnd:同上,缩放后放于右下角;

center:保持原图的大小,显示在ImageView的中心。
当原图的size大于ImageView的size,超过部分裁剪处理。

centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全

centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片

matrix['meɪtrɪks]:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 
原图超过ImageView的部分作裁剪处理

接下去大家一组组的来对待:

3)设置折射率的标题

说完前边四个组别,接着再说下setAlpha属性咯!那些很简单,那特性格,唯有src时才是有效果的!!


4)两者结合妙用:

网上的一张图:

图片 7

一看去是2个简便的GridView,每种item都以二个ImageView,可是仔细的您恐怕发现了,
上面的ICON都不是规则的,而是圆形,圆角矩形等等,于是乎那里运用了src +
background了! 要落到实处上述的功能,你只要求四个操作: 找一张透明的png图片
+
设置3个浅莲灰的背景
 (当然你也能够设置png的发光度来落到实处,可是结果大概和预期的有出入哦!)
大家写个简易例子:

图片 8

如图,呆萌呆萌的小猪就像此呈现到ImageView上了,哈哈,blackground设置了浅青背景!

落到实处代码:

<ImageView  
    android:layout_width="150dp"  
    android:layout_height="wrap_content"  
    android:src="@drawable/pig"  
    android:background="#6699FF" /> 

PS:
当然你也能够用selctor达成点击效果,设置差异的景况设置不一致的图纸,以达成点击只怕触摸功用!


1)1.fitEnd,fitStart,fitCenter

此地以fitEnd为例,别的五个近乎:
以身作则代码:

<!-- 保持图片的横纵比缩放,知道该图片能够显示在ImageView组件上,并将缩放好的图片显示在imageView的右下角 -->
    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fitEnd"
        android:src="@mipmap/meinv" />

运维效果图:

图片 9

4)两者结合妙用:

网上的一张图:

图片 10

一看去是叁个简单的GridView,各样item都以三个ImageView,可是仔细的您只怕发现了,
上边的ICON都不是规则的,而是圆形,圆角矩形等等,于是乎这里运用了src +
background了! 要促成上述的效果,你只须要多个操作: 找一张透明的png图片
+
设置贰个淡鲜红的背景
 (当然你也足以安装png的光滑度来促成,但是结果恐怕和预期的有出入哦!)
我们写个不难例子:

图片 11

如图,呆萌呆萌的小猪就这么展现到ImageView上了,哈哈,blackground设置了日光黄背景!

落成代码:

<ImageView  
    android:layout_width="150dp"  
    android:layout_height="wrap_content"  
    android:src="@drawable/pig"  
    android:background="#6699FF" /> 

PS:
当然你也得以用selctor完毕点击效果,设置分化的意况设置差异的图片,以落到实处点击只怕触摸功效!


5)Java代码中安装blackground和src属性:

前景(对应src属性):setImageDrawable( );
背景(对应background属性):setBackgroundDrawable( );


2)centerCrop与centerInside

centerCrop:按横纵比缩放,直接完全覆盖全体ImageView
centerInside:按横纵比缩放,使得ImageView能够统统呈现这些图片

以身作则代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerCrop"
        android:src="@mipmap/meinv" />

    <ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerInside"
        android:src="@mipmap/meinv" />

运作效果图:

图片 12

5)Java代码中设置blackground和src属性:

前景(对应src属性):setImageDrawable( );
背景(对应background属性):setBackgroundDrawable( );


2.adjustViewBounds设置缩放是还是不是保存原图长度宽度比

ImageView为大家提供了adjustViewBounds质量,用于安装缩放时是还是不是保持原图长度宽度比!
单独设置不起成效,必要合营maxWidthmaxHeight属性一起利用!而背后那四个属性
也是内需adjustViewBounds为true才会生效的~

  • android:maxHeight:设置ImageView的最大惊人
  • android:maxWidth:设置ImageView的最大开间

代码示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <!-- 正常的图片 -->
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:src="@mipmap/meinv" />
    <!-- 限制了最大宽度与高度,并且设置了调整边界来保持所显示图像的长宽比-->
    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:adjustViewBounds="true"
        android:maxHeight="200px"
        android:maxWidth="200px"
        android:src="@mipmap/meinv" />

</LinearLayout>

运作效果图:

图片 13

结果分析: 大的充足图片是尚未此外处理的图片,尺寸是:541*374;而下边包车型大巴不行的话大家经过maxWidth和maxHeight

3)fitXY

不按比例缩放图片,目的是把图纸塞满整个View
演示代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fixXY"
        android:src="@mipmap/meinv" />

运营效果图:

图片 14

好啊,鲜明扁了=-=~

2.adjustViewBounds设置缩放是或不是保存原图长度宽度比

ImageView为大家提供了adjustViewBounds属性,用于安装缩放时是还是不是维持原图长度宽度比!
单独设置不起功用,需求般配maxWidthmaxHeight质量一起使用!而背后那三个属性
也是需求adjustViewBounds为true才会生效的~

  • android:maxHeight:设置ImageView的最大惊人
  • android:maxWidth:设置ImageView的最大开间

代码示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <!-- 正常的图片 -->
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:src="@mipmap/meinv" />
    <!-- 限制了最大宽度与高度,并且设置了调整边界来保持所显示图像的长宽比-->
    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:adjustViewBounds="true"
        android:maxHeight="200px"
        android:maxWidth="200px"
        android:src="@mipmap/meinv" />

</LinearLayout>

运维作效果果图:

图片 15

结果分析: 大的十分图片是从未有过此外处理的图样,尺寸是:541*374;而下边的老大的话大家经过maxWidth和maxHeight

界定ImageView最小幅度面与中度为200px,便是最八只好展现200*200的图纸,大家又设置了四个 **adjustViewBounds

“true”*调动大家的境界来维系图片的长度宽度比,此时的ImageView宽高为是128\200~


4)matrix

从ImageView的左上角开端绘制原图,原图当先ImageView的一对作裁剪处理
示范代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="matrix"
        android:src="@mipmap/meinv" /

运作效果图:

图片 16

5)center
维持原图的高低,展现在ImageView的骨干。当原图的size大于ImageView的size,超过部分裁剪处理。
演示代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="center"
        android:src="@mipmap/meinv" />

范围ImageView最大开间与中度为200px,正是最两只好呈现200*200的图片,我们又设置了一个 **adjustViewBounds

“true”*调整大家的边际来维持图片的长度宽度比,此时的ImageView宽高为是128\200~


3.scaleType设置缩放类型

android:scaleType用于安装展现的图纸怎样缩放可能移动以适应ImageView的分寸
Java代码中得以经过imageView.setScaleType(ImageView.ScaleType.CENTELX570);来安装~
可选值如下:

  • fitXY:对图像的横向与纵向进行独立缩放,使得该图形完全适应ImageView,不过图片的横纵比大概会产生变更
  • fitStart:保持纵横比缩放图片,知道较长的边与Image的编制程序相等,缩放实现后将图片放在ImageView的左上角
  • fitCenter:同上,缩放后放于中间;
  • fitEnd:同上,缩放后放于右下角;
  • center:保持原图的轻重缓急,突显在ImageView的主干。当原图的size大于ImageView的size,超过部分裁剪处理。
  • centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,或然会油可是生图片的展现不完全
  • centerInside:保持横纵比缩放图片,直到ImageView能够统统地出示图片
  • matrix:暗中同意值,不更改原图的轻重,从ImageView的左上角起头绘制原图,
    原图超越ImageView的片段作裁剪处理

接下去大家一组组的来对待:


5.Drawable下动态改变图片颜色

Android 图片DrawableCompat利用setTint()对图片Drawable实行变色

3.scaleType装置缩放类型

android:scaleType用于安装显示的图样如何缩放大概移动以适应ImageView的深浅
Java代码中得以由此imageView.setScaleType(ImageView.ScaleType.CENTE福特Explorer);来安装~
可选值如下:

  • fitXY:对图像的横向与纵向进行单独缩放,使得该图片完全适应ImageView,可是图片的横纵比或许会产生改变
  • fitStart:保持纵横比缩放图片,知道较长的边与Image的编制程序相等,缩放达成后将图纸放在ImageView的左上角
  • fitCenter:同上,缩放后放于中间;
  • fitEnd:同上,缩放后放于右下角;
  • center:保持原图的尺寸,展现在ImageView的为主。当原图的size大于ImageView的size,超越部分裁剪处理。
  • centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,大概会现出图片的体现不完全
  • centerInside:保持横纵比缩放图片,直到ImageView能够统统地出示图片
  • matrix:暗中认可值,不转移原图的轻重缓急,从ImageView的左上角早先绘制原图,
    原图超越ImageView的部分作裁剪处理

接下去我们一组组的来对待:


1)1.fitEnd,fitStart,fitCenter

此间以fitEnd为例,其余几个类似:

演示代码:

<!-- 保持图片的横纵比缩放,知道该图片能够显示在ImageView组件上,并将缩放好的图片显示在imageView的右下角 -->
    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fitEnd"
        android:src="@mipmap/meinv" />

运转作效果果图:

图片 17


1.利用color资源对Drawable变色

Drawable对象的起点不限制,能够是从财富getResource().getDrawable(int
resourceId)也足以是别的的点子获得的Drawable

Drawable wrappedDrawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(wrappedDrawable, color);

1)1.fitEnd,fitStart,fitCenter

那里以fitEnd为例,其余多个类似:

以身作则代码:

<!-- 保持图片的横纵比缩放,知道该图片能够显示在ImageView组件上,并将缩放好的图片显示在imageView的右下角 -->
    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fitEnd"
        android:src="@mipmap/meinv" />

运营效果图:

图片 18


2)centerCrop与centerInside

  • centerCrop:按横纵比缩放,直接完全覆盖全部ImageView
  • centerInside:按横纵比缩放,使得ImageView能够完全显示那么些图形

演示代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerCrop"
        android:src="@mipmap/meinv" />

    <ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerInside"
        android:src="@mipmap/meinv" />

运营作效果果图:

图片 19


2.采用ColorStateList来改变Drawable
Drawable wrappedDrawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTintList(wrappedDrawable, colors);

2)centerCrop与centerInside

  • centerCrop:按横纵比缩放,直接完全覆盖全数ImageView
  • centerInside:按横纵比缩放,使得ImageView能够统统显示那几个图形

演示代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerCrop"
        android:src="@mipmap/meinv" />

    <ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="centerInside"
        android:src="@mipmap/meinv" />

运转效果图:

图片 20


3)fitXY

不按百分比缩放图片,指标是把图片塞满整个View

示范代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fixXY"
        android:src="@mipmap/meinv" />

运维效果图:

图片 21

好啊,显然扁了=-=~


3.介绍一下ColorStateList
<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_pressed="true"  
          android:color="#ffff0000"/> <!-- pressed -->  
    <item android:state_focused="true"  
          android:color="#ff0000ff"/> <!-- focused -->  
    <item android:color="#ff000000"/> <!-- default -->  
</selector>  

3)fitXY

不按比例缩放图片,指标是把图纸塞满整个View

演示代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="fixXY"
        android:src="@mipmap/meinv" />

运营作效果果图:

图片 22

好吧,明显扁了=-=~


4)matrix

从ImageView的左上角开头绘制原图,原图超越ImageView的一些作裁剪处理

示范代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="matrix"
        android:src="@mipmap/meinv" />

运作效果图:

图片 23


4.Java代码(用于转移按钮的字体颜色)
Button btn=(Button)findViewById(R.id.btn);  
Resources resource=(Resources)getBaseContext().getResources();   
ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text);  
if(csl!=null){  
     btn.setTextColor(color_state_list);//设置按钮文字颜色  
}  

4)matrix

从ImageView的左上角开头绘制原图,原图当先ImageView的片段作裁剪处理

以身作则代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="matrix"
        android:src="@mipmap/meinv" />

运营作效果果图:

图片 24


5)center

保持原图的高低,彰显在ImageView的主导。当原图的size大于ImageView的size,超过部分裁剪处理。

演示代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="center"
        android:src="@mipmap/meinv" />

运作效果图:

图片 25


5)center

保持原图的尺寸,显示在ImageView的中坚。当原图的size大于ImageView的size,超过部分裁剪处理。

以身作则代码:

<ImageView
        android:layout_width="300px"
        android:layout_height="300px"
        android:layout_margin="5px"
        android:scaleType="center"
        android:src="@mipmap/meinv" />

运行效果图:

图片 26


4.绘制圆形的ImageView

深信不疑大家对圆形也许圆角的ImageView不不熟悉吧,未来数不胜数的APP都很喜欢圆形的头像是啊~

骨子里项目标话可以考虑用Github上牛人写的控件,比如下边那三个:

RoundedImageView

CircleImageView

 

小说参考自:http://www.runoob.com/w3cnote/android-tutorial-imageview.html

4.制图圆形的ImageView

深信不疑大家对圆形或然圆角的ImageView不目生吧,未来众多的APP都很喜欢圆形的头像是吧~

实则项目标话能够设想用Github上牛人写的控件,比如上边那多个:

RoundedImageView

CircleImageView

 

文章参考自:http://www.runoob.com/w3cnote/android-tutorial-imageview.html

相关文章