Development record of developer who study hard everyday.

레이블이 안드로이드이미지확대축소인 게시물을 표시합니다. 모든 게시물 표시
레이블이 안드로이드이미지확대축소인 게시물을 표시합니다. 모든 게시물 표시
, , ,

안드로이드 이미지뷰(ImageView) 확대 축소 방법

안드로이드 이미지뷰(ImageView) 확대 축소 방법

안드로이드 이미지뷰(ImageView) 확대 축소 방법


안드로이드 블로그

신규 프로젝트를 하면서 이미지를 확대 축소해야하는 내용이 있었다.

구글링을하다가 좋은 내용이 있어서 복습겸 정리해본다.

class MainActivity : AppCompatActivity() {
private val TAG = MainActivity::class.java.simpleName

private var mScaleGestureDetector : ScaleGestureDetector? = null
private var scaleFactor = 1.0f
private lateinit var mImageView1: ImageView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)
mImageView1 = findViewById(R.id.imageView1)

mScaleGestureDetector = ScaleGestureDetector(this, ScaleListener())    //1

}

override fun onTouchEvent(event: MotionEvent?): Boolean {
Log.d(TAG, "onTouchEvent")

mScaleGestureDetector!!.onTouchEvent(event)    //2
return true
}


inner class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener() {    //3
override fun onScale(detector: ScaleGestureDetector?): Boolean {
scaleFactor *= mScaleGestureDetector?.scaleFactor ?: 1F

scaleFactor = Math.max(0.5f, Math.min(scaleFactor, 2.0f))

mImageView1.scaleX = scaleFactor
mImageView1.scaleY = scaleFactor

return true
}
}
}

1 => ScaleGestureDetector를 초기화해준다.

2 => onTouchEvent를 override해서 터치이벤트가 발생하면 초기화한 ScaleGestureDetector를 사용해 onTouchEvent 메소드를 실행한다.

3 => 확대 축소 정도를 결정해주는 ScaleListener 클래스이다.


Share:
Read More