2015-10-24 4 views
1

Я хочу, чтобы переключить поворот на 90 градусов, когда изображение сливают:подвыборки-масштаба изображения вид setRotation не занимает весь экран

@UiThread // Android Annotations 
void loadImage(ImageSource uri) { 
    image.setMinimumScaleType(SCALE_TYPE_CENTER_CROP); 
    image.setMaxScale(8); 
    image.setImage(uri); // I've tried the ImageViewState variant 
    image.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      if (image.getRotation() < 1) { 
       image.setRotation(90); 
      } else { 
       image.setRotation(0); 
      } 
     } 
    }); 
} 

Если image определяется в фрагменте:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView 
     android:id="@+id/image" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</FrameLayout> 

Работает, но повернутое на 90 градусов изображение не занимает весь экран. Он имеет белый фон сверху и снизу.

Original image

Rotated image

Как это исправить?

+0

Будет ли этот код работать на вас? http://stackoverflow.com/a/20146058/1163224 – ProblemSlover

+0

@ProblemSlover nope, моя проблема связана с сторонней библиотекой, https://github.com/davemorrissey/subsampling-scale-image-view sorry Я забыл упомянуть это – wiradikusuma

+0

В любом случае, вы можете создать подкласс представления изображения и переопределить метод, который отвечает за отображение изображения и попытаться применить/предлагаемый выше код – ProblemSlover

ответ

1

Это setOrientation(), а не setRotation(). Последний метод относится к View.

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