ImageView控件(Android调整图片显示格式)

ImageView是一个可以显示任何图片资源的控件,同时可以调整图片的像素,显示的位置,图片的滚动等问题。

ImageView有很多常用的属性,下面会一一解释。先看布局文件:

<?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的大小 -->
<ImageView
    android:id="@+id/img1"
    android:adjustViewBounds="true"    //是否按比例缩小
    android:maxWidth="150dp"
    android:maxHeight="150dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/second"
    android:layout_gravity="center_horizontal"
    />
<!-- 放大/缩小图片以适应ImageView大小 -->
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageView
        android:id="@+id/img31"
        android:layout_width="50dp"
        android:layout_height="70dp"
        android:src="@drawable/ic_launcher"
        android:scaleType="fitStart"/>    //以左上角为起点,把图等比例放大直到宽达到50或高达到70
    <ImageView
        android:id="@+id/img32"
        android:layout_width="50dp"
        android:layout_height="70dp"
        android:src="@drawable/ic_launcher"
        android:scaleType="fitXY"/>      //填满50*70的空间
    <ImageView
        android:id="@+id/img33"
        android:layout_width="50dp"
        android:layout_height="70dp"
        android:src="@drawable/ic_launcher"
        android:scaleType="fitEnd"/>   //以右下角为起点,把图等比例放大直到宽达到50或高达到70
    <ImageView
        android:id="@+id/img34"
        android:layout_width="50dp"
        android:layout_height="70dp"
        android:src="@drawable/ic_launcher"
        android:scaleType="fitCenter"/>  //以中心为起点,把图等比例放大直到宽达到50或高达到70
    <ImageView
        android:id="@+id/img35"
        android:layout_width="50dp"
        android:layout_height="70dp"
        android:src="@drawable/ic_launcher"
        android:scaleType="centerCrop"/>  //以中心为起点,把图缩放到宽>=50&&高>=70为止
    <ImageView
        android:id="@+id/img36"
        android:layout_width="50dp"
        android:layout_height="70dp"
        android:src="@drawable/ic_launcher"
        android:scaleType="centerInside"/>  //以中心为起点,吧图缩放到适合50*70的空间。即都是小于等于。
</LinearLayout>

<!-- 剪切图片以适应内边距大小 -->
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <ImageView
        android:id="@+id/img21"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"/>
    <ImageView
        android:id="@+id/img22"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"
        android:cropToPadding="true"        //向上滚动20dp
        android:scrollY="20dp"/>
    <ImageView
        android:id="@+id/img23"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"
        android:cropToPadding="true"       //向下滚动20dp
        android:scrollY="-20dp"/>
    <ImageView
        android:id="@+id/img24"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"
        android:tint="#FF0000"/>          //对视图进行颜色渲染
</LinearLayout>

<!-- 图片较大时, ImageView会自动缩小图片,占用可以使用的全部屏幕空间 -->
<ImageView
    android:id="@+id/img4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:src="@drawable/first"/>

</LinearLayout>

运行结果如下:

对于后台的操作了解的不太多,比如

img.setImageAlpha(x);x从0~255,由透明变得不透明,其中50是半透明。

img.setScaleType(ImageView.ScaleType.X);x是scaletype属性,不过activity中跟xml有所不同,比如img.setScaleType(ImageView.ScaleType.FIT_END);靠系统提示吧。

文件源码地址:https://download.csdn.net/download/qq_38367681/10778481

发布了113 篇原创文章 · 获赞 33 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_38367681/article/details/83963062