getImageMatrix()
- 안드로이드의 ImageView 클래스에서 제공하는 메서드
- 이미지 뷰에 적용된 변형 행렬(Matrix)를 반환합니다.
- 이 행렬은 이미지의 크기 조정, 회전, 이동 등과 같은 달라진 형태를 정의하며, 이미지가 화면에 그려질 때 적용된다.
- 이미지의 변형이 없으면 getImageMatrix()는 identity matrix를 반환합니다.
- identity matrix는 아무런 변형이 되지 않은 이미지의 기본 상태를 나타냅니다.
- 반환된 행렬은 직접 수정하지 말고 복사해서 사용해야 합니다.
- 원본 행렬을 변경하면 예기치 않은 동작이 발생할 수 있습니다.
- 새로운 변형을 적용하려면 복사본을 수정한 후 setImageMatrix()를 통해 적용해야합니다.
public RectF(float left, float top, float right, float bottom);
- Float을 좌표로 사용하는 사각형을 나타내는 클래스
- 이미지나 그래픽을 그릴 때 유용하게 사용된다.
- 예를 들어, Canvas의 drawBitmap() 메서드를 사용할 때 이 RectF를 사용하여 이미지를 특정 위치와 크기로 그릴 수 있습니다.
RectF rect = new RectF(0f, 0f, realImageWidth, realImageHeight);
canvas.drawBitmap(bitmap, null, rect, paint);
public int getIntrinsicWidth()
- Drawble 객체의 고유 크기(픽셀 단위)
- 이미지 파일의 실제 해상도
- 주의
- drawable 디렉토리에 있는 이미지는 Density값이 적용되어 디바이스와 density의 비율에 따라 자동으로 확대한다.
- Density
- px와 dp 간의 비율이다.
- xdpi의 모바일 폰에서는 1dp는 3px와 같다.(모바일 기기 해상도에 따라 값이 달라진다.)
- 앨범에서 4032*3024 해상도 이면 :
drawable.intrinsicWidth == 4032
drawable.intrinsicHeight == 3024
public boolean mapRect(android. graphics. RectF rect)
val matrix = binding.editImage.imageMatrix
rectOfImageInApp = RectF(0f, 0f, realImageWidth, realImageHeight)
matrix.mapRect(rectOfImageInApp)
- Matrix를 RectF 사각형에 적용해서 rectF 사각형이 화면에서 어떻게 변할지를 계산해준다.
- mapRect(rect)작동 설명
- rect의 4개의 꼭짓점을 각각 Matrix의 mapPoint로 적용
- 그 결과로 얻은 4개의 점을 포함하는 최소한의 사각형(RectF)을 다시 rect에 저장
- 반환값 true/false는 보통 행렬에 의해 사각형이 뒤집혔는지(시계/반시계) 여부를 알려줌
'android > Kotlin' 카테고리의 다른 글
[안드로이드] ViewGroup.LayoutParams (0) | 2025.05.27 |
---|---|
[안드로이드] startActivity (0) | 2025.05.27 |
[안드로이드] Handler 공식문서 공부 (0) | 2025.05.27 |