From 32434bc9c6e1d83dffc96b03d464b9a837b60d76 Mon Sep 17 00:00:00 2001 From: shixianjie Date: Thu, 10 Oct 2024 17:28:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=B1=8F=E6=9F=A5=E7=9C=8B=E5=9B=BE?= =?UTF-8?q?=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 + .../java/com/hjx/parent/HomeworkShareActivity.java | 4 ++ .../com/hjx/parent/dialog/PhotoViewDialog.java | 59 ++++++++++++++++++++++ app/src/main/res/layout/dialog_photo_view.xml | 28 ++++++++++ app/src/main/res/values/styles.xml | 6 +++ 5 files changed, 99 insertions(+) create mode 100644 app/src/main/java/com/hjx/parent/dialog/PhotoViewDialog.java create mode 100644 app/src/main/res/layout/dialog_photo_view.xml diff --git a/app/build.gradle b/app/build.gradle index f4ffa0d..7efc65b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,4 +93,6 @@ dependencies { implementation 'com.geyifeng.immersionbar:immersionbar:3.2.2' implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.2' + // 图片查看 + implementation 'com.github.chrisbanes:PhotoView:2.0.0' } \ No newline at end of file diff --git a/app/src/main/java/com/hjx/parent/HomeworkShareActivity.java b/app/src/main/java/com/hjx/parent/HomeworkShareActivity.java index 9ff034f..48ea12d 100644 --- a/app/src/main/java/com/hjx/parent/HomeworkShareActivity.java +++ b/app/src/main/java/com/hjx/parent/HomeworkShareActivity.java @@ -19,6 +19,7 @@ import com.chad.library.adapter.base.BaseViewHolder; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.hjx.parent.databinding.ActivityHomeworkShareBinding; +import com.hjx.parent.dialog.PhotoViewDialog; import com.hjx.parent.rx.BaseRxActivity; import com.prws.common.bean.ResponseResult; import com.prws.common.bean.Student; @@ -220,6 +221,9 @@ public class HomeworkShareActivity extends BaseRxActivity { + new PhotoViewDialog(mContext).show(url); + }); Single.just(url) .subscribeOn(Schedulers.io()) .map(u -> Glide.with(mContext).asBitmap().load(url).submit().get()) diff --git a/app/src/main/java/com/hjx/parent/dialog/PhotoViewDialog.java b/app/src/main/java/com/hjx/parent/dialog/PhotoViewDialog.java new file mode 100644 index 0000000..95cb7c1 --- /dev/null +++ b/app/src/main/java/com/hjx/parent/dialog/PhotoViewDialog.java @@ -0,0 +1,59 @@ +package com.hjx.parent.dialog; + +import android.content.Context; +import android.graphics.Color; +import android.view.View; +import android.view.WindowManager; + +import androidx.annotation.NonNull; + +import com.bumptech.glide.Glide; +import com.hjx.parent.databinding.DialogPhotoViewBinding; + +public class PhotoViewDialog extends BaseDialog { + public PhotoViewDialog(Context context) { + super(context); + } + + private String url; + + @Override + public void initView() { + setupWindow(); + setCancelable(true); + binding.btnClose.setOnClickListener(v -> dismiss()); + } + + private void setupWindow() { + // 在显示 Dialog 之前对窗口进行设置 + getWindow().setFlags( + WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, + WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + + // 设置状态栏背景透明 + getWindow().setStatusBarColor(Color.TRANSPARENT); + + // 让内容延伸到状态栏区域,并保持状态栏和导航栏的显示 + getWindow().getDecorView().setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + + } + + @Override + public void onDialogStart() { + super.onDialogStart(); + Glide.with(getContext()).load(url).into(binding.photoView); + } + + public void show(String url) { + this.url = url; + super.show(); + } + + @NonNull + @Override + public DialogPhotoViewBinding getBinding() { + return DialogPhotoViewBinding.inflate(getLayoutInflater()); + } +} diff --git a/app/src/main/res/layout/dialog_photo_view.xml b/app/src/main/res/layout/dialog_photo_view.xml new file mode 100644 index 0000000..baa1f1d --- /dev/null +++ b/app/src/main/res/layout/dialog_photo_view.xml @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2e59a74..4395fbe 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -66,6 +66,12 @@ true + +