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属性,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • Android ImgView属性图文详解

    ImageView是用于界面上显示图片的控件. 属性 1.为ImageView设置图片 ①android:src="@drawable/img1": src设置图片,默认图片等比例放缩,以最适应的大小显示. ②android:background="@drawable/img1" background是组件通用属性,不仅可以设置组件的背景颜色,也可以用图片做背景. [提示] ①以图片做背景,那么图片将适应组件的大小. ②但如果控件是宽高为wrap_content,则

  • 初学者Android studio安装图文详解

    学习过java基础,最近趁着大量课余时间想学习Android开发.百度很多资料Android studio,由Google开发的开发工具,那就不需要再多说.对于初学者的我来说,一定足够用了.此文主要介绍自己下载.安装.第一次使用遇到的问题. 开发环境 物理机:Windows8.1专业版 Android Studio 2.3.3.0 下载来源:Android Studio中文社区http://www.android-studio.org/(建议安装带有Android sdk的安装包) 下载好后按照

  • 基于Android FileProvider 属性配置详解及FileProvider多节点问题

    众所周知在android7.0,修改了对私有存储的限制,导致在获取资源的时候,不能通过Uri.fromFile来获取uri了我们需要适配7.0+的机型需要这样写: 1:代码适配 if (Build.VERSION.SDK_INT > 23) {// intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); Uri contentUri = FileProvider.getUriForFile(context, SysInfo.packageN

  • Android clipChildren属性实例详解

    前言 前几天有在微博上推荐过一个博客,看他文章时发现了这个属性.有些属性不常用,但需要的时候非常有用,于是做了个例子,正好项目用到,与大家分享一下.  正文 一.效果图 看到这个图时你可以先想想如果是你,你怎么实现这个效果.马上想到用RelativeLayout?NO,NO,NO,,,  二.实现代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="h

  • 图文详解Android属性动画

    Android中的动画分为视图动画(View Animation).属性动画(Property Animation)以及Drawable动画.从Android 3.0(API Level 11)开始,Android开始支持属性动画,本文主要讲解如何使用属性动画.关于视图动画可以参见博文<Android四大视图动画图文详解>. 一.概述 视图动画局限比较大,如下所述: 1.视图动画只能使用在View上面. 2.视图动画并没有真正改变View相应的属性值,这导致了UI效果与实际View状态存在差异

  • Android Studio搜索功能(查找功能)及快捷键图文详解

    1.在当前窗口查找文本[Ctrl+F] F3 向下查找关键字出现位置 Shift+F3 向上一个关键字出现位置 2.在当前工程内查找文本[Ctrl+Shift+F] 先会弹出一个对话框,直接点击[find],开始在整个工程内查找该字符串 查找结果如下: 3.查找类[Ctrl+N] 4.查找文件[Ctrl+Shift+N] 5.查找项目中的方法或变量[Ctrl+Shift+Alt+N] 6.查找类/方法/变量引用的地方 先定位光标 右键选择"Find Usages"(快捷键Alt+F7)

  • Android Studio 下自动注释(自定义作者,类作用等)图文详解

    Eclipse 的自动注释相信大家都不会陌生,http://www.jb51.net/article/105094.htm,来到Android Studio之后我们会发现这个有用的功能竟然没有!(其实是被Android Studio隐藏了),鼓捣一番也就那么回事-.- 很简单,首先打开你的Android Studio  在工具栏点击如图小图标 然后在进入页面里搜索:File and Code Templates,如图 再如图 新建一个类试试 总结 以上所述是小编给大家介绍的Android Stu

  • Eclipse工程转为兼容Android Studio模式的方法步骤图文详解

    方法/步骤 准备好需要转换的工程 , 最好是新建一个文件夹 , 然后将主工程和依赖工程放到同一个目录 屏幕快照 2016-12-24 12.43.02.png 在eclipse中导入主工程和依赖工程 , 导入之后最好先跑一遍 , 确定没有问题再继续操作 屏幕快照 2016-12-24 12.40.03.png 在主工程上右键导出 屏幕快照 2016-12-24 12.53.51.png 将工程导出为Generate Gradle build files , 这一步很重要哦 , 只有导出为这个模式

  • Android Studio 中运行 groovy 程序的方法图文详解

    Groovy简介 Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码.由于其运行在 JVM 上的特性,Groovy也可以使用其他非Java语言编写的库. Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言.使用该种语言不必编写过多的代码,同时又具有闭包和动态语

  • Android Studio3.6.3 当前最新版本数据库查找与导出方法(图文详解)

    一.SQLite安装包准备 本文章主要是针对安装了Android Studio 3.6.3 版本(Android Studio以下简称为AS)所做的SQLite教程, 博主这边安装的是 , 由于SQL语言基本大同小异,仅仅是管理数据库的软件不大相同,所以说数据库使用方法类似,具体安装流程参考网络上其他文章,本文暂不提供安装流程,安装完毕即可. 二.重中之重----Android Studio 3.0 版本起弃用了之前使用的ADM 博主也是刚发现自AS 3.0 开始弃用 Android Devic

随机推荐