Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pkp.mobile.fmcollection.custom_view
- import android.content.Context
- import android.graphics.Bitmap
- import android.graphics.Matrix
- import android.graphics.drawable.Drawable
- import android.util.AttributeSet
- import android.view.MotionEvent
- import android.view.ScaleGestureDetector
- import android.view.View
- import android.widget.ImageView
- import kotlinx.android.synthetic.main.activity_edit_pdf.*
- /**
- * created by RIZKI RACHMANUDIN on 17/11/2022
- */
- class ImageZoomView: androidx.appcompat.widget.AppCompatImageView {
- private lateinit var mBitmap: Bitmap
- private lateinit var mScaleGestureDetector: ScaleGestureDetector
- private var mScaleFactor = 1.0f
- private lateinit var mMatrix: Matrix
- constructor(context: Context) : super(context) {
- init(context)
- }
- constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
- init(context)
- }
- constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context!!, attrs, defStyleAttr) {
- init(context)
- }
- private fun init(context: Context?) {
- mScaleGestureDetector = ScaleGestureDetector(context, ScaleListener())
- mMatrix = Matrix()
- mMatrix.setScale(mScaleFactor, mScaleFactor)
- }
- override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec)
- }
- override fun onTouchEvent(event: MotionEvent?): Boolean {
- super.onTouchEvent(event)
- mScaleGestureDetector.onTouchEvent(event)
- performClick()
- return true
- }
- override fun performClick(): Boolean {
- super.performClick()
- return true
- }
- private inner class ScaleListener: ScaleGestureDetector.SimpleOnScaleGestureListener() {
- override fun onScale(detector: ScaleGestureDetector): Boolean {
- mScaleFactor *= detector.scaleFactor
- mScaleFactor = 0.1f.coerceAtLeast(mScaleFactor.coerceAtMost(10.0f))
- // mBitmap.scaleX = mScaleFactor
- // mBitmap.scaleY = mScaleFactor
- return true
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement