一手遮天 Android - view(媒体类): ImageView 的 scaleType
示例如下:
/view/media/ImageViewDemo2.java
/**
* ImageView - 图片控件
*
* 本例用于演示 ImageView 的 scaleType
*
* 注:关于网络图片的显示和缓存,以及图片的处理之类的建议使用 Picasso 框架
*/
package com.webabcd.androiddemo.view.media;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.webabcd.androiddemo.R;
public class ImageViewDemo2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_media_imageviewdemo2);
}
}
/layout/activity_view_media_imageviewdemo2.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 - 图片控件
scaleType - 缩放方式
fitCenter(ImageView.ScaleType.FIT_CENTER) - 等比缩放,居中显示。当 ImageView 的 width 和 height 为 wrap_content 时则按照原图大小显示此值为默认值
fitStart(ImageView.ScaleType.FIT_START) - 等比缩放,居左显示
fitEnd(ImageView.ScaleType.FIT_END) - 等比缩放,居右显示
fitXY(ImageView.ScaleType.FIT_XY) - 拉伸并充满
center(ImageView.ScaleType.CENTER) - 不缩放,居中显示,原图大小显示
centerCrop(ImageView.ScaleType.CENTER_CROP) - 等比缩放,居中显示,呈现的图片的宽大于等于控件的宽,呈现的图片的高大于等于控件的高
centerInside(ImageView.ScaleType.CENTER_INSIDE) - 等比缩放,居中显示,,呈现的图片的宽小于等于控件的宽,呈现的图片的高小于等于控件的高
matrix(ImageView.ScaleType.MATRIX) - 呈现的图片和控件的左上角点对齐,原图大小显示(关于 matrix 转换详见 animation/MatrixDemo1.java)
-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!--
fitCenter(ImageView.ScaleType.FIT_CENTER) - 等比缩放,居中显示。当 ImageView 的 width 和 height 为 wrap_content 时则按照原图大小显示此值为默认值
-->
<ImageView
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="fitCenter"
android:src="@drawable/img_sample_son" />
<!--
fitStart(ImageView.ScaleType.FIT_START) - 等比缩放,居左显示
-->
<ImageView
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="fitStart"
android:src="@drawable/img_sample_son" />
<!--
fitEnd(ImageView.ScaleType.FIT_END) - 等比缩放,居右显示
-->
<ImageView
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="fitEnd"
android:src="@drawable/img_sample_son" />
<!--
fitXY(ImageView.ScaleType.FIT_XY) - 拉伸并充满
-->
<ImageView
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="fitXY"
android:src="@drawable/img_sample_son" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!--
center(ImageView.ScaleType.CENTER) - 不缩放,居中显示,原图大小显示
-->
<ImageView
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="center"
android:src="@drawable/img_sample_son" />
<!--
centerCrop(ImageView.ScaleType.CENTER_CROP) - 等比缩放,居中显示,呈现的图片的宽大于等于控件的宽,呈现的图片的高大于等于控件的高
-->
<ImageView
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="centerCrop"
android:src="@drawable/img_sample_son" />
<!--
centerInside(ImageView.ScaleType.CENTER_INSIDE) - 等比缩放,居中显示,,呈现的图片的宽小于等于控件的宽,呈现的图片的高小于等于控件的高
-->
<ImageView
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="centerInside"
android:src="@drawable/img_sample_son" />
</LinearLayout>
<!--
matrix(ImageView.ScaleType.MATRIX) - 呈现的图片和控件的左上角点对齐,原图大小显示(关于 matrix 转换详见 animation/MatrixDemo1.java)
-->
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="5dp"
android:background="@color/orange"
android:scaleType="matrix"
android:src="@drawable/img_sample_son" />
</LinearLayout>