亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消