Android ImgView属性图文详解

 更新时间:2018年04月21日 09:31:24   作者:小群子0618  
ImageView是用于界面上显示图片的控件。这篇文章主要介绍了Android ImgView属性图文详解,需要的朋友参考下

ImageView是用于界面上显示图片的控件。

属性

1、为ImageView设置图片

①android:src="@drawable/img1";

src设置图片,默认图片等比例放缩,以最适应的大小显示。

②android:background="@drawable/img1"

background是组件通用属性,不仅可以设置组件的背景颜色,也可以用图片做背景。

【提示】

①以图片做背景,那么图片将适应组件的大小。

②但如果控件是宽高为wrap_content,则和src的效果相同。

③如果src和background属性同时设置,src设置的图片将在上方,background设置的图片将在上方。src图片不一定完全遮盖下面的图片,根据src的放缩模式而定。

④资源文件名称由小写字母、数字、下划线组成。(注意:不能用大写字母)

③案例

【准备】对应的图片资源可以放再 res/drawable文件夹下,这是两张图片没有进行任何缩放的效果

【代码】

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity"
  android:background="#ccc">
  <ImageView
    android:id="@+id/iv"
    android:layout_width="200dp"
    android:layout_height="300dp"
    android:background="@drawable/img1" />
  <ImageView
    android:id="@+id/iv2"
    android:layout_width="300dp"
    android:layout_height="200dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="8dp"
    android:background="@drawable/img2"
   app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent" />
</android.support.constraint.ConstraintLayout>

【效果】

【提示】

【提示】①这里为了更好地说明background和src的区别,我们将ImageView设置具体的宽度。

②其他一些margin和constraintEnd等属性只是用来调整位置。具体根据你的父容器而定。

③左图是background的效果,右图是在src的效果,并未其添加了图片作为背景,便于观察ImageView的位置和大小。

2、放缩属性

ScaleType[code]android:scaleType="fitXY"

【提示】ScaleType属性要结合src属性一起使用,对background设置的图片没有效果

【代码】

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity"
  android:background="#ccc">
  <ImageView
    android:id="@+id/iv"
    android:layout_width="360dp"
    android:layout_height="500dp"
    android:src="@drawable/img1"
    android:background="#f00"
    android:scaleType="fitCenter"/>
</android.support.constraint.ConstraintLayout>

【属性值】

以下只修改ScaleType的属性值

①fixCenter:这是图片默认的属性值,表示会填充控件,不会让图片变形。

②fixXY:表示图片填充控件,允许图片拉伸,会根据ImageView的大小而适配。和background的效果相同。

③centerCrop:以填满整个ImageView为目的,将ImageView的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(ImageView的宽高都要填满),原图超出部分做裁剪处理。

【效果】

④center:保持原图大小,显示在ImageView的中心。当原图大小小于ImageView大小时,旁边部分将空白,如左图。反之,原图将将做裁剪处理,如右图(这里将ImageView的大小修改成比原图小的值)

【效果】

⑤matrix:不改变原图的大小,从ImageView的左上角开始绘制原图。原图超过部分将作裁剪。

【提示】用Matrix对ImageView作放大和缩小的效果是,ImageView的ScaleType必须设置为matrix

⑥fitEnd:把原图按比例放缩到ImageView的宽度,显示在下方的位置。左图

⑦fitStart:把原图按比例放缩到ImageView的宽度,显示在上方的位置。右图

⑧centerInside:以原图完全显示为目的,将图片的内容完整居中显示,通过按比例缩小的原图宽高等于或者小于ImageView的宽高。如果原图小于ImageView的宽高,则原图不做处理,居中显示在ImageView上(如左图)。反之,和fixCenter效果相同。以短的一边为基准等比例放缩图片,完整的显示在ImageView的中间(如右图)。

3、调整边界来适应图片

android:adjustViewBounds="true/false"

表示是否可以通过调整边界来适应图片(与maxWidth或者maxHeight配合使用)。一般此属性和maxHeight和maxWidth属性一起使用。最大宽度和高度。

【提示】

①如果设置的layout_width与layout_height都是定值,则设置adjustViewBounds是没有效果的,ImageView将为设定的定值的宽高。

②如果设置的layout_width与layout_height都是wrap_content,则设置adjustViewBounds是没有意义的,因为ImageView将始终与图片拥有相同的宽高比(但是并不是相同的宽高值,通常都会放大一些)

总结

以上所述是小编给大家介绍的Android ImgView属性,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • AlertDialog点击按钮不消失的实现方法

    AlertDialog点击按钮不消失的实现方法

    我有一个文本输入对话框,当我点击对话框上的“是”按钮,它会验证输入,然后关闭对话框,但是,如果输入错误,我想停留在同一个对话框中。怎么实现此功能呢?下面通过本文给大家分享下
    2017-01-01
  • Android常见控件使用详解

    Android常见控件使用详解

    这篇文章主要为大家详细介绍了Android常见控件的使用方法,包括ProgressBar进度条控件、AlertDialog对话框控件等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • okhttp3.4.1+retrofit2.1.0实现离线缓存的示例

    okhttp3.4.1+retrofit2.1.0实现离线缓存的示例

    本篇文章主要介绍了okhttp3.4.1+retrofit2.1.0实现离线缓存的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Android模拟器

    Android模拟器"Failed To Allocate memory 8"错误如何解决

    这篇文章主要介绍了Android模拟器"Failed To Allocate memory 8"错误如何解决的相关资料,需要的朋友可以参考下
    2017-03-03
  • Android四大组件之BroadcastReceiver详解

    Android四大组件之BroadcastReceiver详解

    今天小编就为大家分享一篇关于Android四大组件之BroadcastReceiver详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Android 深入探究自定义view之事件的分发机制与处理详解

    Android 深入探究自定义view之事件的分发机制与处理详解

    对于安卓程序员来说,自定义view简直不要太重要,毕竟有很多功能,譬如圆形头像这些,用单纯的原生非常难以实现,而用自定义view,简直分分钟
    2021-11-11
  • Android编程之匿名内部类与回调函数用法分析

    Android编程之匿名内部类与回调函数用法分析

    这篇文章主要介绍了Android编程之匿名内部类与回调函数用法,结合实例形式分析了Android编程中所涉及的java匿名内部类与回调函数的概念、定义、使用方法与相关注意事项,需要的朋友可以参考下
    2016-10-10
  • Android为TextView添加字体库和设置描边的方法

    Android为TextView添加字体库和设置描边的方法

    本篇文章主要介绍了Android为TextView添加字体库和设置描边的方法,具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • Android中的JNI数组操作教程

    Android中的JNI数组操作教程

    这篇文章主要给大家介绍了关于Android中JNI数组操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Android Studio OkHttpClient使用教程详解

    Android Studio OkHttpClient使用教程详解

    这篇文章主要介绍了Android Studio OkHttpClient使用教程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论