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

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

  • AChartEngine transparenter Hintergrund
  • Wie man eine transparente ImageButton hat: Android
  • Transparentes GIF in Android ImageView
  • Erstellen Sie einen transparenten Dialog über die Aktivität
  • Zeichnen Sie transparente Form auf Leinwand
  • Android XML ziehbarer transparenter Farbverlauf
  • Machen Sie transparente Hintergrund der Android-Symbole in Eclipse
  • Android: machen alles um Dialog dunkler als Standard
  • 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.