2016-07-31 4 views
0

У меня должен быть DialogFragment в моем приложении. Цель этого фрагмента - показать увеличенный рисунок, если я нажму на миниатюру в другом фрагменте.Изменение размера DialogFragment во время выполнения

Вот макет для него:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

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

</FrameLayout> 

Так в основном, это ImageView предполагается отображать масштаб изображения в ПОС, и я хочу, чтобы отобразить ПИК как можно больше на экране.

У меня есть растровое изображение, для которого я вычисляю размер дисплея, который может соответствовать экрану, насколько позволяет экран.

Проблема: Проблема заключается дополнительное пространство в отображаемом увеличенном ПОС:

Портрет: enter image description here

Пейзаж: enter image description here

Я не может «урожай «Это дополнительное пространство. Я прочитал решение изменения размера, и я сделал следующее: (перед вызовом mPhotoView.setImageBitmap(bitmap) где mPhotoView является экземпляр ImageView я получил от findViewById())

BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = true; 
     BitmapFactory.decodeFile(getArguments().getString(key_imagePath), options); 
     float srcWidth = options.outWidth; 
     float srcHeight = options.outHeight; 

     FrameLayout.LayoutParams p = new FrameLayout.LayoutParams((int)srcWidth, (int)srcHeight); 
     view.setLayoutParams(p); 
     view.requestLayout(); 

Вопрос:

  1. Как удалить этот дополнительный пробел от представления DialogFragment?
  2. Имеет ли значение DialogFragment означает, что размер макета будет исправлен или что-то подобное в общем?
  3. Возможно ли, что это из-за макета?
+0

фоторамка Layout XML имеет 'match_parent' попробуйте' wrap_content', чтобы удалить пустое пространство. –

+0

@MarkKeen: Я пытаюсь сейчас. Благодарю. –

+0

@MarkKeen: Он не работает с wrap_content –

ответ

0

Chanching первый FrameLayout'sheight и width к "wrap_content" не работает? (При задании imageView на починку размерах, как вам нравится.)

android:layout_width="wrap_content 
android:layout_height="wrap_content"> 
+0

Он не работает с wrap_content. –

+0

Тогда почему бы вам не использовать пользовательский макет для вашего диалога. Я использую их много. –

+0

изготовленный под заказ макет ...? Я этого не понимал. Не могли бы вы немного разобраться? –

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