0
点赞
收藏
分享

微信扫一扫

Android开发之ImageView控件

野见 2022-03-11 阅读 48

文章目录

主要属性

android:src 设置图片资源
android:scaleType 设置图片缩放类型
android:maxHeight 最大高度
android:maxWidth 最大宽度
android:adjustViewBounds 调整View的界限

基本框架

需提前在drawable文件夹添加图片资源,这里用博主旅游时拍的风景照为例:
在这里插入图片描述

之后在activity_main.xml中设置好基本框架,就可以在预览中看到我们设置的图片。

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

    <ImageView
        android:src="@drawable/image1"
        android:layout_width="200dp"
        android:layout_height="200dp"/>


</LinearLayout>

在这里插入图片描述
可以发现,为了能让图片显示在ImageView框中,AS对图片进行了默认等比缩放。

设置缩放类型

如果不想使用默认的等比缩放,可以调整scaleType。如用fitXY可以拉伸图片使其完全填充ImageView。
在这里插入图片描述
除此之外,有众多缩放类型可供选择:

fitStart 保持宽高比缩放图片,直到较长的边与ImageView的边长相等,缩放完成后将图片放在左上角。
fitCenter 默认值,同上放缩后置于中间。
fitEnd 同上放缩后置于右下角。
fitXY 对图像的横纵方向进行独立缩放,使得该图片完全适应ImageView,可能会改变图片的宽高比。
center 保持原图的大小,显示在ImageView的中心,超过ImageView的部分会被裁剪。
centerCrop 保持宽高比缩放图片,直到能覆盖ImageView,超出的部分裁剪。
centerInside保持宽高比缩放图片,直到ImageView能够完全显示图片。(当图片大小大于ImageView时与fitCenter效果一致,当图片小于ImageView时图片不会被放大)
matrix不改变原图大小,将图片置于左上角,超出的部分裁剪。

在这里插入图片描述
在这里插入图片描述

设置最大宽高与自动调整

一般情况下,我们的图片很难刚好与ImageView相等,如果直接将ImageView的宽高属性设置为wrap_content,又容易被现在特别高清的照片“撑爆”,为了调整图片缩放到我们想要的大小,我们可以设置最大宽高,并开启自动调整。

设置前,ImageView被图片撑到屏幕的极限:
在这里插入图片描述
设置后,图片就会被约束到我们设置的极限大小,且ImageView的宽高与图片完全相等:

<ImageView
        android:src="@drawable/image1"
        android:maxHeight="200dp"
        android:maxWidth="200dp"
        android:adjustViewBounds="true"

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

在这里插入图片描述

举报

相关推荐

0 条评论