2012-08-18 5 views
1

갤러리를 호출하여 이미지 뷰에 표시되는 이미지를 선택하는 코드가 있습니다. 이것은 잘 작동하고 화면 비율을 유지합니다.자동으로 회전하는 비트 맵의 ​​크기 조절

uriIsNowAbitmap = MediaStore.Images.Media.getBitmap (this.getContentResolver() :이 경우 경우 이미지 크기가이 코드를 사용하고 X 2,048 2,048보다 큰 경우 문제는 selectedImageUri);

   //... 

      int height = uriIsNowAbitmap.getHeight(); 
      int width = uriIsNowAbitmap.getWidth(); 

      if ((width>=2048)||(height>=2048)) { 

       int newheight = height/10; // height in pixels 
       int newwidth = width/10; // width in pixels  
       Bitmap avatarScaled = Bitmap.createScaledBitmap(uriIsNowAbitmap, newwidth, newheight, true); 

       previewNewAvatar.setImageBitmap(avatarScaled); 

}

는 제대로 작동하지만, 문제와. 이미지가 회전 된 모습으로 표시된 유형이 아닙니다. 설명을 시도하기 위해

이 예제를 넣으 려합니다.

enter image description here

내가 사진을 선택하고 이미지 뷰에 할당

회전과 같습니다 :

enter image description here

내가 왜 이해하지 못하는이 갤러리의 사진입니다. 나는 천 가지 방법을 시도하고 크기 조정에 대한 많은 정보를 읽었습니다.이 웹 사이트 (Android: high quality image resizing/scaling) 및 기타 많은 것들에 대한 스레드 및 샘플 코드를 읽었습니다. 그러나 아무 도움이되지 않습니다. 의도는이 방법에 표시하는 것입니다 ... 내가 어떤 도움을 주셔서 감사합니다

enter image description here

:

는 많은 시간을 해결하기 위해 노력했다 포토샵으로 만들

감사

+0

당신이 그것을 해결하기 위해 관리나요 : configChanges 그냥 아래의 코드를 참조하십시오? 나는 같은 문제를 가지고있다. – Rami

+0

어떻게이 문제를 관리 했습니까 ?? – Jithu

답변

0

첫째, 방향 변경을 감지해야하고, 가로 방향 변경을 감지하면 그에 따라 비트 맵을 회전합니다. 아래의 onConfigurationChanged() 메서드에서 액세스하려면 전역 변수로 비트 맵 avatarScaled를 선언해야합니다.

방향 변경을 감지하려면 onConfigurationChanged Activity 메서드를 사용합니다. 다음 코드를 참조하십시오 :

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
super.onConfigurationChanged(newConfig); 

if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
Matrix matrix = new Matrix(); 
matrix.postRotate(90); 
Bitmap rotated = Bitmap.createBitmap(avatarScaled, 0, 0, avatarScaled.getWidth(), 
            avatarScaled.getHeight(), matrix, true); 
previewNewAvatar.setImageBitmap(rotated); 
} 
} 
또한 안드로이드 포함하도록 매니페스트 파일에서 해당 요소를 편집해야

:

<activity android:name=".MyActivity" 
     android:configChanges="orientation|keyboardHidden" 
     android:label="@string/app_name"> 
+0

불행히도 같은 상황이 지속되기 때문에 제안하는 해결책이 제대로 작동하지 않습니다. 관심을 가져 주셔서 대단히 감사합니다. 다른 아이디어? – Sergio76

+0

@MiguelC 더 많은 코드를 게시 할 수 있습니다. 가능한 한이 문제가 발생하는 전체 활동을 게시 할 수 있습니까? –