Android Image Dialog / Popup gleiche Größe wie Bild und keine Grenze

Im Moment arbeite ich an einem Dateibrowser. Alles funktioniert gut mit einer Ausnahme: Wenn der Benutzer auf ein Bild klickt (jpg, png, bmp, ..), möchte ich, dass das Bild in einem Dialog oder in einem Popup angezeigt wird, das die gleiche Größe hat wie das Bild – so dass Es gibt überhaupt keine grenzen Die Bilddateien befinden sich auf der sdcard.

Hier ist was ich bisher habe

  • Wie man Fehler behebt "Konnte Mac OS X Version von sw_vers Ausgabe nicht entdecken: '10 .12 '" von Appium
  • Android: deaktivieren markieren auf listView klicken
  • Phonegap - Wähle Bild aus der Galerie
  • Android Snackbar NullPointerException in Fragment
  • Bluetooth Low Energy Verschlüsselung und Datensicherheit
  • Unterschiede zwischen Jar, Android Library und Android Library Project
  • BitmapDrawable bitmap = new BitmapDrawable(context.getResources(), TARGET_PATH); AlertDialog.Builder imageDialog = new AlertDialog.Builder(context); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.thumbnail, null); ImageView image = (ImageView) layout.findViewById(R.id.thumbnail_IMAGEVIEW); image.setImageDrawable(bitmap); imageDialog.setView(layout); imageDialog.create(); imageDialog.show(); 

    Die XML-Datei:

     <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/thumbnail_IMAGEVIEW" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:contentDescription="@string/icon_DESCRIPTION" /> </RelativeLayout> 

    Hier ist die Ausgabe:

    Ausfall

    Es gibt hässliche Grenzen an den Rändern der Bilder – ich möchte nicht, dass sie gezeigt werden. Ich habe viele Sachen und Beispiele in Google, etc .. – nichts funktioniert noch nicht.

    Die beste Option ist, den Dialog / die Ansicht hinter dem Bild zu machen, die gleiche Größe wie das Bild. Ein anderer Weg könnte sein, den Hintergrund hinter dem Bild transparent zu setzen.

    Wie erreiche ich eine Lösung? Ich würde gerne den Hintergrund die gleiche Größe wie das Bild machen, also gibt es kein "unsichtbares" Zeug links, aber ich werde auch in Ordnung mit der transparenten Option.


    Lösung:

     // Get screen size Display display = context.getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int screenWidth = size.x; int screenHeight = size.y; // Get target image size Bitmap bitmap = BitmapFactory.decodeFile(TARGET); int bitmapHeight = bitmap.getHeight(); int bitmapWidth = bitmap.getWidth(); // Scale the image down to fit perfectly into the screen // The value (250 in this case) must be adjusted for phone/tables displays while(bitmapHeight > (screenHeight - 250) || bitmapWidth > (screenWidth - 250)) { bitmapHeight = bitmapHeight / 2; bitmapWidth = bitmapWidth / 2; } // Create resized bitmap image BitmapDrawable resizedBitmap = new BitmapDrawable(context.getResources(), Bitmap.createScaledBitmap(bitmap, bitmapWidth, bitmapHeight, false)); // Create dialog Dialog dialog = new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.thumbnail); ImageView image = (ImageView) dialog.findViewById(R.id.imageview); // !!! Do here setBackground() instead of setImageDrawable() !!! // image.setBackground(resizedBitmap); // Without this line there is a very small border around the image (1px) // In my opinion it looks much better without it, so the choice is up to you. dialog.getWindow().setBackgroundDrawable(null); // Show the dialog dialog.show(); 

    XML-Datei:

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

    Endausgabe:

    Ausgabe

  • UiAutomator-Dump für Lollipop Lost WebView View Hierarchie
  • Ersetzen Sie das obere Fragment auf den hinteren Stapel
  • CoordinatorLayout Toolbar unsichtbar auf enter bis volle Höhe
  • SendUserActionEvent () ist null
  • Android - Wie kann ich die Leistung von ListView und anderen Ansichten messen?
  • So ändern Sie SIM Application Toolkit (STK) Rooted Mobile
  • 4 Solutions collect form web for “Android Image Dialog / Popup gleiche Größe wie Bild und keine Grenze”

    Sie können einen benutzerdefinierten Dialog für das Anzeigen von Bildern, machen Sie ein Layout für das Aufblasen in Dialog's setcontentview, nehmen Sie ein lineares Layout mit Breite und Höhe wrap Inhalt und Bildansicht mit in mit Skala Eigenschaft fitxy.

    Verwenden Sie FrameLayout, da es übergeordnet ist als RelativeLayout und auf wrap_content und 0 Ränder setzen.

    Versuchen:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:background="@color/background"> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/frameLayout" android:background="#b2ff7c"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/ic_launcher"/> </FrameLayout> </RelativeLayout> 

    Das Ergebnis sollte ein Hintergrund sein, der die gleiche Größe hat wie die ImageView.

    Wenn das funktioniert. Versuchen Sie, dies in einem benutzerdefinierten Thema zu ändern:

      <style name="Widget.ImageWell"> <item name="android:background">@android:drawable/panel_picture_frame_background</item> </style> 

    Ändern Sie hier Ihre ImageView:

     <ImageView android:id="@+id/thumbnail_IMAGEVIEW" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:contentDescription="@string/icon_DESCRIPTION" /> 

    Dazu:

     <ImageView android:id="@+id/thumbnail_IMAGEVIEW" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:adjustViewBounds="true" <!-- Here is the thing --> android:contentDescription="@string/icon_DESCRIPTION" /> 

    Hoffe das hilft.

    Habe ich versucht Set SetType in ImageView?

    <ImageView ... android:scaleType="fitXY" ... />

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.