2016-07-31 26 views
0

Ich sollte ein DialogFragment in meiner App haben. Der Zweck dieses Fragments besteht darin, das gezoomte Bild anzuzeigen, wenn ich auf ein Miniaturbild in einem anderen Fragment klicke. HierÄndern der Größe von DialogFragment zur Laufzeit

ist das Layout für sie:

<?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> 

Also im Grunde das Image sollten in pic die gezoomt angezeigt werden, und ich möchte das Bild angezeigt werden, so viel wie möglich auf dem Bildschirm.

Ich habe eine Bitmap, für die ich die Displaygröße berechnen, die den Bildschirm so viel wie der Bildschirm ermöglicht.

Problem: Das Problem ist, der zusätzliche Platz im gezoomten Bild angezeigt:

Porträt: enter image description here

Landschaft: enter image description here

Ich bin nicht in der Lage zu „crop "Dieser zusätzliche Platz. Ich las eine Lösung Größe ändern und ich habe die folgenden: (vor mPhotoView.setImageBitmap(bitmap) Aufruf wo mPhotoView die Image Instanz I von findViewById() bekam)

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(); 

Frage:

  1. Wie entferne ich diese zusätzliche Leerraum aus der Ansicht von DialogFragment?
  2. Bedeutet ein DialogFragment, dass die Layoutgröße korrigiert wird oder gibt es so etwas im Allgemeinen?
  3. Ist es möglich, dass es wegen der Layout-Pässe ist?
+0

Ihre Rahmenlayout-XML hat 'match_parent' versuchen mit' wrap_content' Leerraum zu entfernen. –

+0

@MarkKeen: Ich versuche gerade jetzt. Vielen Dank. –

+0

@MarkKeen: Es funktioniert nicht mit wrap_content –

Antwort

0

Chanching die erste FrameLayout'sheight und width zu "wrap_content" nicht funktioniert? (Während Ihr imageView an einem fix Größen einstellen, wie Sie möchten.)

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

Es funktioniert nicht mit wrap_content. –

+0

Warum verwenden Sie dann kein benutzerdefiniertes Layout für Ihren Dialog? Ich benutze sie sehr oft. –

+0

benutzerdefiniertes Layout ...? Das habe ich nicht verstanden. Könnten Sie ein wenig ausarbeiten? –