一、结构
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
简笔图:
三、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>
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦