ImageView控件负责显示图片,来源可以是资源文件的id,也可以是Drawable对象或者Bitmap对象,还可以是Content Provider的Uri。
ImageView常用属性
属性名称 对应方法 说明
android:adjustViewBounds setAdjustViewBounds(boolean) 设置是否需要ImageView调整自己的边界来保证所显示的图片的长宽比例
android:maxHeight setMaxHeight(int)ImageView的最大高度,可选
android:maxWidth setMaxWidth(int)ImageView的最大宽度,可选
android:scaleType setScaleType(ImageView.ScaleType)控制图片应如何调整和移动来适合ImageView的尺寸
android:src setImageResource(int)设置ImageView要显示的图片
ImageView类中的成员方法
setAplha(int alpha) 设置透明度
setImageBitmap(Bitmap bm)设置所显示的内容为指定的Bitmap对象
setImageDrawable(Drawable drawable)设置所显示的内容为指定的Drawable对象
setImageResource(int resid)设置所显示的内容为指定的id的资源
setImageUri(Uri uri)设置所显示的内容为指定的Uri
setSelected(boolean selected)设置图片的选中状态
strings.xml
<resources>
<string name="app_name">TestActivity</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string name="next">下一张</string>
<string name="previous">上一张</string>
<string name="alpha_plus">透明度增加</string>
<string name="alpha_minus">透明度减少</string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
> <!-- 声明了一个垂直分布的线性布局 -->
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/p1"
/> <!-- 声明了ImageView控件 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
> <!-- 声明了一个水平分布的线性布局 -->
<Button
android:id="@+id/previous"
android:text="@string/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
/> <!-- 声明了一个Button控件 -->
<Button
android:id="@+id/alpha_plus"
android:text="@string/alpha_plus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
/> <!-- 声明了一个Button控件 -->
<Button
android:id="@+id/alpha_minus"
android:text="@string/alpha_minus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
/> <!-- 声明了一个Button控件 -->
<Button
android:id="@+id/next"
android:text="@string/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
/> <!-- 声明了一个Button控件 -->
</LinearLayout>
</LinearLayout>
Activity
package com.example.testactivity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView iv; //ImageView对象引用
Button btnNext; //Button对象引用
Button btnPrevious; //Button对象引用
Button btnAlphaPlus; //Button对象引用
Button btnAlphaMinus; //Button对象引用
int currImgId = 0; //记录当前ImageView显示的图片id
int alpha=255; //记录ImageView的透明度
int [] imgId = { //ImageView显示的图片数组
R.drawable.p1,
R.drawable.p2,
R.drawable.p3,
R.drawable.p4,
R.drawable.p5,
R.drawable.p6,
R.drawable.p7,
R.drawable.p8,
};
private View.OnClickListener myListener = new View.OnClickListener(){//自定义的OnClickListener监听器
@Override
public void onClick(View v) { //判断点下的是那个Button
if(v == btnNext){ //下一张图片按钮被按下
currImgId = (currImgId+1)%imgId.length;
iv.setImageResource(imgId[currImgId]); //设置ImageView的显示图片
}
else if(v == btnPrevious){ //上一张图片按钮被按下
currImgId = (currImgId-1+imgId.length)%imgId.length;
iv.setImageResource(imgId[currImgId]); //设置ImageView的显示图片
}
else if(v == btnAlphaPlus){ //增加透明度按钮被按下
alpha -= 25;
if(alpha < 0){
alpha =0;
}
iv.setAlpha(alpha); //设置ImageView的透明度
}
else if(v == btnAlphaMinus){ //减少透明度按钮被按下
alpha += 25;
if(alpha >255){
alpha = 255;
}
iv.setAlpha(alpha); //设置ImageView的透明度
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) { //重写onCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv = (ImageView)findViewById(R.id.iv); //获得ImageView对象引用
btnNext = (Button)findViewById(R.id.next); //获得ImageView对象引用
btnPrevious = (Button)findViewById(R.id.previous); //获得ImageView对象引用
btnAlphaPlus = (Button)findViewById(R.id.alpha_plus); //获得ImageView对象引用
btnAlphaMinus = (Button)findViewById(R.id.alpha_minus); //获得ImageView对象引用
btnNext.setOnClickListener(myListener); //为Button对象设置OnClickListener监听器
btnPrevious.setOnClickListener(myListener); //为Button对象设置OnClickListener监听器
btnAlphaPlus.setOnClickListener(myListener); //为Button对象设置OnClickListener监听器
btnAlphaMinus.setOnClickListener(myListener); //为Button对象设置OnClickListener监听器
}
}
程序运行图