Как изменить размер изображения при изменении ориентации?

1

У меня есть изображение (320x210), я вызываю изображение из выталкиваемой папки в xml файле... в портретном режиме его работает нормально, но пока я меняю устройство на LANDSCAPE, изображение не подстраивается. Как решить эту проблему..?? Вот мой xml-код, который я попробовал

   <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter"(here i tried with "fitXY" also)
        android:adjustViewBounds="true"
        android:src="@drawable/srkpic"/>  

А также я попытался с помощью этого метода protected void onSizeChanged (int w, int h, int oldW, int oldH) {}, но этот метод доступен, только если мы расширим его с помощью "View", который не соответствует моему требованию. Благодарю.

Теги:

2 ответа

2
Лучший ответ

используйте приведенный ниже код при изменении ориентации, где imgHeaderFooter - это ваше растровое изображение

 imgHeaderFooter.setDensity(1/2);

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

        int screenWidth = UseMe.getDispWidth()/2;

        float scaleWidth = ((float) screenWidth) / width;
        float scaleHeight = ((float) height) / height;      

        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth,scaleHeight);
        Bitmap resizedBitmap = Bitmap.createBitmap(imgHeaderFooter,0,0,width,height,matrix,true);
        BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);

        imageView = new ImageView(this);
        imageView.setScaleType(ScaleType.FIT_XY); 
        imageView.setImageDrawable(bmd);
  • 0
    что это ... UseMe int screenWidth = UseMe.getDispWidth () / 2;
  • 0
    UseMe.getDispWidth () / 2 - это фактически ширина экрана Android-устройства, разделенная на 2, ничего кроме WindowManager w = getWindowManager (); Display d = w.getDefaultDisplay (); int width = d.getWidth () / 2; int height = d.getHeight () / 2;
Показать ещё 1 комментарий
2

Предоставьте альтернативный ресурс размером с ландшафт под res/drawable-land для srkpic.

  • 0
    да .. что я пытался и он работает .. но приложение перезапускается .. что я не хочу. Любой другой путь, кроме этого .. ???
  • 0
    Вам необходимо проверить атрибут android: configChange для действия.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню