最近在自学android,有个图片弹出放大缩小的功能,跟微信查看头像一样,查了很多文档,都没有很好的解决办法,自己琢磨出来其实非常简单,主要思路是使用自定义dialog弹框,点击我们的图片时弹出自定义弹框,自定义弹框里面有个imageView,里面用的是第三方图片插件photoView,这个插件实现了图片放大缩小功能。
1.gradle里面引用插件依赖
implementation ("com.github.chrisbanes:PhotoView:2.3.0")

2.自定义弹框布局image_dialog.xml文件,一定要使用线性布局,其它可能不能全屏展示,图片使用<com.github.chrisbanes.photoview.PhotoView>
<?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">
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/photo_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/liuyifei" />
</LinearLayout>
3.图片详情页xml里面有个ImageView

4.在onCreate方法里面创建图片点击监听事件
ImageView quanImage = findViewById(R.id.detail_quan);
quanImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Glide.with(getApplicationContext())
.load(R.drawable.quan)
.into(quanImage);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.quan);
bigImageLoader(bitmap);
}
});
5.图片加载方法如下
private void bigImageLoader(Bitmap bitmap) {
Dialog dialog = new Dialog(this); // 使用this作为Context参数来初始化Dialog对象。
dialog.setContentView(R.layout.image_dialog);
Window window = dialog.getWindow();
window.setBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.diallogbeijing));
// 找到布局中的控件并设置监听器等(如果需要)
ImageView image = dialog.findViewById(R.id.photo_view);
image.setImageBitmap(bitmap);
PhotoView photoView = dialog.findViewById(R.id.photo_view);
photoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss(); // 点击按钮时关闭对话框。
}
});
dialog.show();
}
弹出图片弹框后手指可以缩放图片,单击图片或任意地方关闭弹框。
3992

被折叠的 条评论
为什么被折叠?



