本文实例为大家分享了简单的图片浏览器制作,供大家参考,具体内容如下
例子中的图片浏览器既可以改变图片的透明度,也可以根据用户在图片上选定的某一区域,对其进行显示,用于查看图片的局部细节。
在activity_main.xml中:
在MainActivity.java中:
package com.example.test02;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
// 定义访问图片的数组
private int[] images=new int[]{R.drawable.zm1,R.drawable.zm2,R.drawable.zm6,
R.drawable.zm4,R.drawable.zm5};
// 定义默认显示的图片
private int current=2;
// 定义图片的初始透明度
private int alpha=255;
private Button btn1,btn2,btn3;
private ImageView image1,image2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=findViewById(R.id.btn1);
btn2=findViewById(R.id.btn2);
btn3=findViewById(R.id.btn3);
image1=findViewById(R.id.image1);
image2=findViewById(R.id.image2);
//定义查看下一张图片的监听器
btn3.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
image1.setImageResource(images[++current%images.length]);
}
});
// 为按钮添加监听器
btn1.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
//定义改变图片透明度的方法
if (v==btn1){
alpha+=20;
}
if (alpha>=255){
alpha=255;
}
if (alpha<=0){
alpha=0;
}
//改变图片的透明度
image1.setImageAlpha(alpha);
}
});
btn2.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
if (v==btn2){
alpha-=20;
}
if (alpha>=255){
alpha=255;
}
if (alpha<=0){
alpha=0;
}
image1.setImageAlpha(alpha);
}
});
image1.setonTouchListener(new View.onTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
BitmapDrawable bitmapDrawable= (BitmapDrawable) image1.getDrawable();
// 获取第一个图片显示框中的位图
Bitmap bitmap=bitmapDrawable.getBitmap();
// 实际大小与第一张图片的缩放比例
double scale=1.0*bitmap.getHeight()/image1.getHeight();
// 获取需要显示图片的开始点
long x=Math.round(event.getX()*scale);
long y=Math.round(event.getY()*scale);
if (x+120>bitmap.getWidth()){
x=bitmap.getWidth()-120;
}
if (y+120>bitmap.getHeight()){
y=bitmap.getHeight()-120;
}
// 显示图片指定区域
image2.setImageBitmap(Bitmap.createBitmap(bitmap,(int)x,(int)y,120,120));
image2.setImageAlpha(alpha);
return false;
}
});
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



