xml 文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/ivbt01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bt01" />
<Button
android:id="@+id/ivbt02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bt02" />
<Button
android:id="@+id/ivbt03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bt03" />
</LinearLayout>
<!-- 定义显示图片整体的imageView -->
<ImageView
android:id="@+id/image01"
android:layout_width="wrap_content"
android:layout_height="280dp"
android:src="@drawable/e97b65c01c002e86b007d222c4a4e34"
android:scaleType="fitCenter"/>
<!-- 定义显示图片局部细节的imageview -->
<ImageView
android:id="@+id/image02"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="#00f"
android:layout_margin="10dp"/>
java 文件:
int[] image = new int[] { R.drawable.mia1, R.drawable.mia3, R.drawable.mia,
R.drawable.e97b65c01c002e86b007d222c4a4e34 };
// 定义默认显示的图片
int currentimage = 2;
// 定义图片初始透明度
private int alpha = 255;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.imageview);
final Button plus = (Button) findViewById(R.id.ivbt01);
final Button minus = (Button) findViewById(R.id.ivbt02);
final Button next = (Button) findViewById(R.id.ivbt03);
final ImageView image01 = (ImageView) findViewById(R.id.image01);
final ImageView image02 = (ImageView) findViewById(R.id.image02);
// 定义查看下一张图片的监听器
next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// 控制显示下一张图片
image01.setImageResource(image[++currentimage % image.length]);
}
});
// 定义改变图片透明度的方法
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (arg0 == plus) {
alpha += 20;
}
if (arg0 == minus) {
alpha -= 20;
}
if (alpha >= 255) {
alpha = 255;
}
if (alpha <= 0) {
alpha = 0;
}
// 改变图片透明度
image01.setImageAlpha(alpha);
}
};
// 为按钮添加监听器
plus.setOnClickListener(listener);
minus.setOnClickListener(listener);
image01.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
BitmapDrawable bd = (BitmapDrawable) image01.getDrawable();
// 获取第一个图片现在框中的位图
Bitmap bp = bd.getBitmap();
// bp图片的实际大小与第一个imageview的缩放比例
double scale = 1.0 * bp.getHeight() / image01.getHeight();
// 获取需要显示的图片开始点
int x = (int) (arg1.getX() * scale);
int y = (int) (arg1.getY() * scale);
if (x + 120 > bp.getWidth()) {
x = bp.getWidth() - 120;
}
if (y + 120 > bp.getHeight()) {
y = bp.getHeight() - 120;
}
// 显示图片的指定区域
image02.setImageBitmap(Bitmap.createBitmap(bp, x, y, 120, 120));
image02.setImageAlpha(alpha);
return false;
}
});
}
界面效果