Как масштабировать ImageView после изменения ориентации?

#android #imageview #orientation #screen-rotation

#Android #imageview #ориентация #поворот экрана

Вопрос:

Когда я поворачиваю экран, ImageView не изменяет масштаб изображения, но собственный Imageview поворачивает изображение.
Как я могу этого добиться?

Проект https://github.com/jasonpolites/gesture-imageview

Манифест:

 <activity android:name="ScaleTypeCenterInsidePortrait"
                  android:configChanges="orientation|screenSize"></activity>
  

Мой класс ScaleTypeCenterInsidePortrait:

 public class ScaleTypeCenterInsidePortrait extends ExampleActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.scale_type_inside_portrait);
    }

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

}
  

Комментарии:

1. Четко написано, что он не поддерживает вращение.

2. да, я переопределяю onConfigurationChanged, но какой метод пересчитывает масштаб изображения и перерисовывает макет.

Ответ №1:

замените эти строки в своем коде

 public class ScaleTypeCenterInsidePortrait extends ExampleActivity {

ImageView imv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
imv=new ImageView(this);
imv.setimageResource(R.drawable."your image name in the drwable folder");
imv.setscaleType(ScaleType.Center_Inside);

    }
@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
            setContentView(imv);
        }
        else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            setContentView(imv);         
        }
    }
  

}
и поместите в манифест эти строки

 <activity android:name=".Activity_name"
          android:configChanges="orientation|keyboardHidden">
  

Комментарии:

1. ImageView работает нормально, но я использую GestureImageView (1-й пост) — он не работает

2. Попробуйте это и дайте мне знать, GestureImageview giv=GestureImageview)findViewById(R.id .»yourGestureImageviewId»); giv.setScaleType(scaleType. CENTER);// тип масштаба по умолчанию

3. это работает, но макет после изменения ориентации не масштабируется для реального экрана устройства

4. это работает, значит, проголосуйте за мой ответ, чувак, и проверьте, добавили ли вы эти строки в свой XML-жест-изображение: минимальный масштаб = «0,1» жест-изображение: максимальный масштаб = «10,0» жест-изображение: строгий = «ложь»

5. это не то, что мне было нужно