为了账号安全,请及时绑定邮箱和手机立即绑定

Android控件之ImageView

标签:
Android

一、结构

    Java.lang.Object

      Android.view.View

        android.widget.ImageView


ImageView是Android程序中经常用到的组件,它将一个图片显示到屏幕上



二、ImageView的ScaleType属性详解

  在layout xml中定义android:scaleType="centerCrop"


1.android:scaleType="center" 

按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示


2.android:scaleType="centerCrop" 

按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) 


3.android:scaleType="centerInside" 

将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽


4.android:scaleType="fitCenter" 

 把图片按比例扩大/缩小到View的宽度,居中显示


5.android:scaleType="fitStart" 

 把图片按比例扩大/缩小到View的宽度,顶部显示


6.android:scaleType="fitEnd" 

 把图片按比例扩大/缩小到View的宽度,底部显示


7.android:scaleType="fitXY" 

 不按比例缩放图片,目标是把图片塞满整个View


简笔图5bc349550001f35a00200020.jpg

5bc349550001891504720539.jpg

三、ImageViewDemo案列


MainActivity.java

package com.signal027.imageviewdemo;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private ImageView mImageView;
    private Button mAbove = null; //上一张
    private Button mAlphaPlus = null; //透明度增加
    private Button mAlphaMinus = null; //透明度减少
    private Button mNext = null; //下一张
    private int currentImageId = 0; //记录当前ImageView显示的ID
    private int alpha = 255; //记录ImageView的透明度

    //把要显示的图片存入数组
    int images[] = {R.mipmap.sample_0,R.mipmap.sample_1,R.mipmap.sample_2,
                    R.mipmap.sample_3,R.mipmap.sample_4,R.mipmap.sample_5,
                    R.mipmap.sample_6,R.mipmap.sample_7,};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mImageView = (ImageView) findViewById(R.id.imageView);

    }
    //给Button设置监听事件
    public void doClick(View view){
        switch (view.getId()){
            //上一张
            case R.id.btn_above:
                //方法一:
                currentImageId = (currentImageId-1+images.length)%images.length;

                //方法二:
               /* currentImageId = currentImageId - 1;
                if(currentImageId<0){
                    currentImageId = images.length-1;
                }*/

                mImageView.setImageResource(images[currentImageId]);
                break;

            //透明度增加
            case R.id.btn_alpha_plus:
                alpha += 25;
                if(alpha>255){
                    alpha = 255;
                }
                mImageView.setAlpha(alpha);
                break;

            //透明度减少
            case R.id.btn_alpha_minus:
                alpha -= 25;
                if(alpha<0){
                    alpha = 0;
                }
                mImageView.setAlpha(alpha);
                break;

            //下一张
            case R.id.btn_next:
                //方法一:
                currentImageId = (currentImageId+1)%images.length;

                //方法二:
                /*currentImageId = currentImageId + 1;
                if(currentImageId>7){
                    currentImageId = 0;
                }*/
                mImageView.setImageResource(images[currentImageId]);
                break;
        }
    }
}

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:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@mipmap/sample_0"
        android:layout_gravity="center"/>

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

        <Button
            android:id="@+id/btn_above"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="doClick"
            android:text="上一张"
            android:textSize="12dp"/>

        <Button
            android:id="@+id/btn_alpha_plus"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="doClick"
            android:text="透明度增加"
            android:textSize="12dp"/>

        <Button
            android:id="@+id/btn_alpha_minus"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="doClick"
            android:text="透明度减少"
            android:textSize="12dp"/>

        <Button
            android:id="@+id/btn_next"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="doClick"
            android:text="下一张"
            android:textSize="12dp"/>

    </LinearLayout>

</LinearLayout>


5bc34955000149cc03540591.jpg

原文链接:http://www.apkbus.com/blog-805096-60593.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消