为了账号安全,请及时绑定邮箱和手机立即绑定

Android零基础入门第22节:ImageView的属性和方法大全

标签:
Android

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

一、认识ImageView

ImageView继承自View组件,主要功能是用于显示图片,可以显示任意图像。

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

下表显示了ImageView支持的XML属性及相关方法。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代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

<?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:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/girl"/>

 

    <ImageView

        android:layout_width="80dp"

        android:layout_height="80dp"

        android:scaleType="fitXY"

        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/girl"/>

 

    <ImageView

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:scaleType="center"

        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/girl"/>

</LinearLayout>

 

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

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

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

-----------------------------------------------

今天就先到这里,下一期开始UI组件的学习。如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!

原文链接:http://www.apkbus.com/blog-205190-68471.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消