2016-07-06 2 views
1

У меня есть ImageView (квадрат), мне нужно отобразить там изображение определенным образом, в случае, если изображение было сделано в вертикальной ориентации, должно быть место на левая и правая стороны квадрата (рисунок 1), в случае, если изображение было выполнено в альбомной ориентации, должно быть место в верхней и нижней части квадрата. Как это можно сделать? Может быть, для этого существует какой-то специальный ScaleType?Как показать изображение в ImageView определенным образом

Картинка 1:

enter image description here

Изображение 2:

enter image description here

+2

ImageView.ScaleType.CENTER_INSIDE: https://developer.android.com/reference/android/widget/ImageView. ScaleType.html – yongsunCN

+0

@youngsunCN, он отлично работает с пейзажным изображением, но снимки, которые были сделаны в вертикальной ориентации, отображаются так же, как и ландшафт (но с неправильным вращением). Почему это? –

+0

не могли бы вы загрузить пример изображения – yongsunCN

ответ

1

Я надеюсь, что этот пример может помочь вам:

// OnActivityResult метод

    Uri selectedImage = data.getData(); 
        if (selectedImage == null) { 
         imagePath = data.getStringExtra(GOTOConstants.IntentExtras.IMAGE_PATH); 

         Bitmap my_bitmap_camera = BitmapFactory.decodeFile(imagePath); 

         ExifInterface exif = new ExifInterface(imagePath); 
         int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1); 

         switch (orientation){ 
          case ExifInterface.ORIENTATION_ROTATE_90: 
           Matrix matrix = new Matrix(); 
           matrix.postRotate(90); 
           my_bitmap_camera = Bitmap.createBitmap(my_bitmap_camera, 0, 0, my_bitmap_camera.getWidth(), my_bitmap_camera.getHeight(), matrix, true); 
           break; 
         } 

         ivScreenshot1.setImageBitmap(my_bitmap_camera); 
        } 

// XML

  <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 

       <ImageView 
        android:id="@+id/ivScreenshot1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"/> 

      </RelativeLayout> 

// Также вы можете проверить этот пост: How to get the Correct orientation of the image selected from the Default Image gallery

Смежные вопросы