专栏首页分享达人秀ImageView的属性和方法大全

ImageView的属性和方法大全

通过前面几期的学习,TextView控件及其子控件基本学习完成,可以在Android屏幕上显示一些文字或者按钮,那么从本期开始来学习如何进行图片展示,这就是涉及到另外一个非常重要的控件家族,那就是ImageView。

一、认识ImageView

ImageView继承自View组件,主要功能是用于显示图片,可以显示任意图像。ImageView与其子类的类图如下图所示。

从上图可以看到,ImageView 还派生出了 ImageButton、ZoomButton等组件,因此ImageView支持的XML属性、方法,基本上也可应用于ImageButton、 ZoomButton 等组件。ImageView 还QuickContactBadge,显示关联到特定联系人的图片。

下表显示了ImageView支持的XML属性及相关方法。

XML属性

相关方法

说明

android:adjustViewBounds

setAdjustViewBounds(boolean)

设置 ImageView是否调整自己的边界来保持所显示的图片长宽比

android:cropToPadding

setCropToPadding(boolean)

如果属性设置为true,组件将会被裁剪到保留ImageView的padding

android:maxHeight

setMaxHeight(int)

设置 ImageView最大高度

android:maxWidth

setMaxWidth(int)

设置 ImageView最大宽度

android:scaleType

setScaleType(ImageView.ScaleType)

设置所显示的图片如何适应ImageView的大小

android:src

setImageResource(int)

设置ImageView所显示的Drawable对象的ID

ImageView有两个可以设置图片的属性,分别是:android:src和android:background,其中background通常指的是背景,而src指的是内容。另外当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸,而使用background填入图片,则是会根据ImageView给定的宽度来进行拉伸。

ImageView所支持的android:scaleType属性可指定如下属性值。

matrix ( ImageView.ScaleType.MATRIX):使用 matrix 方式进行缩放。

fitXY ( lmageView.ScaleType.FIT_XY):对图片横向、纵向独立缩放,使得该图片完全适应于该ImageView,图片的纵横比可能会改变。

fitStart (ImageView.ScaleType.FIT_START ):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在ImageView的左上角。

fitCenter (ImageView.ScaleType.FIT_CENTER ):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等), 缩放完成后将该图片放在ImageView的中央。

fitEnd (ImageView.ScaleType.FIT_END ):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在ImageView的右下角。

center ( ImageView.ScaleType.CENTER):把图片放在 ImageView 的中间,但不进行任何缩放。

centerCrop ( ImageView.ScaleType.CENTER_CROP):保持纵横比缩放图片,以使得图片能完全覆盖ImageView。只要图片的最短边能显示出来即可。

centerlnside (ImageView.ScaleType.CENTER_INSIDE ):保持纵横比缩放图片,以使得ImageView能完全显示该图片。

为了控制ImageView显示的图片,ImageView提供了如下方法。

setlmageBitmap(Bitmap bm):使用 Bitmap 位图设置该 ImageView 显示的图片。

setlmageDrawable(Drawable drawable):使用 Drawable 对象设置该 ImageView 显示的图片。

setlmageResource(int resld):使用图片资源ID设置该ImageView显示的图片。

setlmageURI(Uri uri):使用图片的URI设置该ImageView显示的图片。

二、ImageView示例

接下来通过一个简单的示例程序来学习ImageView的使用用法。

首先从网上下载一张图片素材,然后放到res/drawable/目录下,在到res/layout/目录下创建一个image_layout.xml文件,然后在其中填充如下代码片段:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/girl"/>

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:scaleType="fitXY"
        android:src="@drawable/girl"/>

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:scaleType="center"
        android:src="@drawable/girl"/>
</LinearLayout>

上面的界面布局文件中定义了三个ImageView,其中第一个ImageView为默认属性和自动宽高,第二个ImageView指定了 android:scaleType="fitXY",第三个ImageView指定了 android:scaleType="center"。

然后修改一下app/src/java/MainActivity.java文件中加载的布局文件为新建的image_layout.xml文件。运行程序,可以看到下图所示界面效果。

到此,ImageView的示例结束,关于ImageView的更多用法可以参照上面的XML属性和方法参照表,建议多动手练习。

本文分享自微信公众号 - 分享达人秀(ShareExpert),作者:鑫鱻

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 历经4个月战斗,吸引力法则乐活天使班面世!

    在去年,一开始仅仅只是抱着好奇的心态,学习了吸引力法则鼻祖的一堂公开课,即被这全新的分享所征服,完全刷新了对吸引力法则的认知。原来在《秘密》的背后还有那么多秘密...

    分享达人秀
  • CheckBox和RadioButton使用大全

    本期先来学习Button的两个子控件,无论是单选还是复选,在实际开发中都是使用的较多的控件,相信通过本期的学习即可轻松掌握。 一、CheckBox ...

    分享达人秀
  • 过时但仍值得学习的选项卡TabHost

    今天来了解一个过时的组件,了解的目的不是学会用起来开发,而是了解这种界面的设计和其特点,后期可以用其他方式来替代。 一、TabHost概述 T...

    分享达人秀
  • 开源项目Universal Image Loader for Android

    In the previous article, we’ve initialized the ImageLoader with configuration; ...

    xiangzhihong
  • Android ImageView 正确使用姿势

    导语 本文主要介绍了ImageView的相关重要方法,从源码角度剖析了一些容易令人混淆或百思不得其解的问题。 一、正确合理使用ImageView 的src 和b...

    腾讯Bugly
  • CTF从入门到提升(九)文件上传以及相关例题分享

    首先来看一下最简单的客户端校验,文件上传是文件从本地到传输到远程服务器,中间经过了三个步骤,在你的客户端(自己电脑)本身做一个文件检测,或者文件传到后端服务器之...

    牛油果
  • 大中型网络监控系统方案的设计思路供参考

    分享一个大中型网络监控系统方案的设计思路供参考: 项目概况: 该项目共计438路视频:130万像素高清红外高速球机96台,130万像素高清红外枪机256台、13...

    企鹅号小编
  • ASP.NET MVC5+EF6+EasyUI 后台管理系统(19)-权限管理系统-用户登录

    我们之前做了验证码,登录界面,却没有登录实际的代码,我们这次先把用户登录先完成了,要不权限是讲不下去了 把我们之前的表更新到EF中去 ? 登录在Account控...

    用户1149182
  • 【转】MySQL松散索引扫描与紧凑索引扫描

    在优化group by查询的时候,一般的会想到两个名词:松散索引扫描(Loose Index Scan)和紧凑索引扫描(Tight Index Scan),因为...

    高广超
  • 机器学习(3)再说监督学习的套路

    当我们辨别一个东西的时候,实际上我们是在比较特征,它跟那些特征相似,我们就认为它是啥?对吧。

    滚神大人

扫码关注云+社区

领取腾讯云代金券