[修复] 书籍网络封面大图查看或保存 #419
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
package io.legado.app.ui.widget.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
@@ -15,7 +18,10 @@ import io.legado.app.help.glide.OkHttpModelLoader
|
||||
import io.legado.app.model.BookCover
|
||||
import io.legado.app.model.ImageProvider
|
||||
import io.legado.app.model.ReadBook
|
||||
import io.legado.app.utils.ImageSaveUtils.saveImageToGallery
|
||||
import io.legado.app.utils.toastOnUi
|
||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||
import java.io.ByteArrayOutputStream
|
||||
|
||||
/**
|
||||
* 显示图片
|
||||
@@ -29,6 +35,13 @@ class PhotoDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_photo_view)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
val sheet = dialog
|
||||
?.findViewById<View>(com.google.android.material.R.id.design_bottom_sheet)
|
||||
sheet?.layoutParams?.height = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
}
|
||||
|
||||
private val binding by viewBinding(DialogPhotoViewBinding::bind)
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -59,6 +72,26 @@ class PhotoDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_photo_view)
|
||||
.downsample(DownsampleStrategy.NONE)
|
||||
.into(binding.photoView)
|
||||
}
|
||||
binding.photoView.setOnLongClickListener {
|
||||
saveCurrentImage()
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
private fun saveCurrentImage() {
|
||||
val drawable = binding.photoView.drawable ?: return
|
||||
val bitmap = (drawable as? BitmapDrawable)?.bitmap ?: return
|
||||
|
||||
val byteArray = ByteArrayOutputStream().use { stream ->
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream)
|
||||
stream.toByteArray()
|
||||
}
|
||||
|
||||
val success = saveImageToGallery(requireContext(), byteArray)
|
||||
|
||||
toastOnUi(
|
||||
if (success) "已保存到相册" else "保存失败"
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user