Android 学习笔记 图像视图ImageView

java yekong

图像视图展示的图片通常位于res/drawable***目录,设置图像视图的显示图片有两种方
式:
在XML文件中,通过属性android:src设置图片资源,属性值格式形如“@drawable/不含扩展名
的图片名称〞。
在Java代码中,调用setlmageResource方法设置图片资源,方法参数格式形如 “R.drawable.不
含扩展名的图片名称〞。

java

package com.example.chapter03;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);
        ImageView iv_scale = findViewById(R.id.iv_scale);
        iv_scale.setImageResource(R.drawable.img);
        iv_scale.setScaleType(ImageView.ScaleType.CENTER);
    }
}

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">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/iv_scale"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginTop="20dp"
            android:src="@drawable/img"
            android:scaleType="fitCenter"
            ></ImageView>
    </LinearLayout>
</LinearLayout>

ImageView本身默认图片居中显示,若要改变图片的显示方式,可通过scaleType属性设
定,该属性的取值说明如下:

1672537319390prqNRK

ScaleType显示效果

默认fitCenter
注意到centerinside和center的显示效果居然一植一样,这缘于它们的缩放规则设定。表面上fitCenter、 centerInside、 center三个类型都是居中显示,且均不越过图像视图的边界。它们之间的区别在于:fitCenter既公许缩小图片、也允许放大图片,centerinsice只允许缩小图片、不允许放大图标,而center自始至终保持原始尺寸(既不允许缩小图片、也不允许放大图片)。因此,当图片尺寸大于视图宽高,centerinside与fitcenter都会缩小图片,此时它俩的显示效果相同;当图片尺寸小于视图宽高,centerInside与center都保持图片大小不变,此时它俩的显示效果相同。

fitXY

fitXY

fitStart

fitStart

fitCenter

fitCenter

fitEnd

fitEnd

center

center

centerCrop

centerCrop

centerInside

centerInside

喜欢