2014-10-14 2 views
2

모든 화면에서 고정 x/y 비율의 ImageView를 만들고 싶습니다. 예를 들어 유명한 16/9 비율. 그리고 ImageView를 가능한 한 크게하고 싶습니다. 어떻게 안드로이드에서 할 수 있을까요? 고마워요.이미지 크기 조정 방법

+0

원하는 종횡비는 이미지에서 유래 하는가 또는 당신이 그것을 강제 할? – forcewill

+0

나는 그것을 강제하고 싶다. – MOHRE

답변

1

위의 대답은 가로 세로 비율을 변경합니다.

xml 레이아웃 파일 만 수정하여 목표를 달성 할 수 없습니다. Java 코드에서이 작업을 수행해야합니다.

기본 단계는 :

  1. 비트 맵으로 이미지 파일을 판독하고, 초기 폭과 높이 비트 맵의 ​​종횡비을 얻었다.
  2. 는 각각 X 및 Y 차원에 대한 스케일링 인자를 계산하고 factor= (factorX<factorY?factorX:factorY)

  3. 스케일 이미지 위로

    factorX= ScreenWitdhInPixel/ImgWidth
    factorY= ScreenHeightInPixel/ImgHeight
    사용 이미지 확장 할 수있는 두 요소의 작은 하나를 사용 2 단계에서 계산 된 요소 값

    Matrix matrix = new Matrix(); matrix.postScale(factor, factor); Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);

전체 예를 들어이 게시물을 참조하십시오 : ImageView fit without stretching the image

+1

여기에 답을 설명하고 필요한 참조를 추가해야한다. – afzalex

0

android : scaleType = "fitXY"를 imageView에 설정해야합니다. 당신이 당신의 이미지 뷰가 부모만큼 클하려면

, 당신은 코드의 라인을 작성할 수 있습니다

android:layout_width="match_parent" 
android:layout_height="match_parent"