安卓学习笔记------imageView控件的学习

2017-12-23  本文已影响0人  天青色等烟雨hhft
src属性和background属性的区别:

①background通常指的都是背景,而src指的是内容
②当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸,而使用background填入图片,则是会根据ImageView给定的宽度来进行拉伸
写代码验证了一下

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/collect" />

    <ImageView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:background="@drawable/collect" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/collect" />

    <ImageView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:src="@drawable/collect" />
image.png
解决拉伸导致变形的方法

刚才第二张图片因为拉伸导致变形了,可以通过drawable的Bitmap资源文件来完成,然后blackground属性设置为该文件

<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/col"
    android:gravity="top"
    android:src="@drawable/collect"
    android:tileMode="disabled" >
</bitmap>

android:tileMode="disabled" 禁止平铺

设置透明度

setAlpha这个属性,只有src时才是有效果的

adjustViewBounds设置缩放是否保存原图长宽比

ImageView提供了adjustViewBounds属性,用于设置缩放时是否保持原图长宽比, 单独设置不起作用,需要配合maxWidth和maxHeight属性一起使用.而后面这两个属性也是需要adjustViewBounds为true才会生效.

android:maxHeight:设置ImageView的最大高度
android:maxWidth:设置ImageView的最大宽度

<!-- 正常的图片 -->
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5px"
        android:src="@drawable/collect" />
    <!-- 限制了最大宽度与高度,并且设置了调整边界来保持所显示图像的长宽比-->
    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:adjustViewBounds="true"
        android:maxHeight="50dp"
        android:maxWidth="50dp"
        android:src="@drawable/collect" />
image.png
scaleType设置缩放类型

fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,但是图片的横纵比可能会发生改变
fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,缩放完成后将图片放在ImageView的左上角
fitCenter:同上,缩放后放于中间;
fitEnd:同上,缩放后放于右下角;
center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全
centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片
matrix:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 原图超过ImageView的部分作裁剪处理

上一篇下一篇

猜你喜欢

热点阅读