Wie kann ich einen Rahmen für eine ImageView
und seine Farbe in Android ändern?
Antworten
Zu viele Anzeigen?Hier ist meine einfachste Lösung für dieses langwierige Problem.
<FrameLayout
android:layout_width="112dp"
android:layout_height="112dp"
android:layout_marginLeft="16dp" <!-- May vary according to your needs -->
android:layout_marginRight="16dp" <!-- May vary according to your needs -->
android:layout_centerVertical="true">
<!-- following imageView acts as the boarder which sitting in the background of our main container ImageView -->
<ImageView
android:layout_width="112dp"
android:layout_height="112dp"
android:background="#000"/>
<!-- following imageView holds the image as the container to our image -->
<!-- layout_margin defines the width of our boarder, here it's 1dp -->
<ImageView
android:layout_width="110dp"
android:layout_height="110dp"
android:layout_margin="1dp"
android:id="@+id/itemImageThumbnailImgVw"
android:src="@drawable/banana"
android:background="#FFF"/> </FrameLayout>
Im Folgenden répondre Ich habe es gut genug erklärt, bitte sehen Sie sich das auch an!
Ich hoffe, dass dies für jemanden da draußen hilfreich ist!
In der gleichen xml habe ich folgendes verwendet:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff" <!-- border color -->
android:padding="3dp"> <!-- border width -->
<ImageView
android:layout_width="160dp"
android:layout_height="120dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:scaleType="centerCrop" />
</RelativeLayout>
Ich hätte das Thema fast aufgegeben.
Dies ist meine Bedingung, die Glide zum Laden von Bildern verwendet, siehe detailliertes Problem mit abgerundeten Ecken hier y aquí
Ich habe auch die gleichen Attribute für meine ImageView
, für alle antworten hier 1 , hier 2 & hier 3
android:cropToPadding="true"
android:adjustViewBounds="true"
android:scaleType="fitCenter"`
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/path_to_rounded_drawable"
Aber immer noch kein Erfolg.
Nachdem ich eine Weile recherchiert hatte, verwendete ich eine foreground
Attribute von diese SO Antwort hier ein Ergebnis vorweisen android:foreground="@drawable/all_round_border_white"
Leider bekomme ich die "unschöne" Randecke wie im Bild unten:
Sie können 9 Patch in Android Studio verwenden, um Ränder zu erstellen!
Ich habe nach einer Lösung gesucht, aber ich habe keine gefunden, also habe ich diesen Teil übersprungen.
Dann ging ich zu den Google-Bildern von Firebase-Assets und ich entdeckte zufällig, dass sie 9patch verwenden.
Hier ist der Link: https://developer.Android.com/studio/write/draw9patch
Sie müssen nur dort ziehen, wo die Kanten sind.
Es ist genau wie die Randleiste in Unity.