一、结构
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>
共同學習,寫下你的評論
評論加載中...
作者其他優質文章

