Ich bin auf ein Problem gestoßen, das ich keine Lösung finden kann. Ich habe einen Kreislayout, den ich als Hintergrund eine zufällige Farbe einstelle. Das Problem ist, das Layout ist quadratisch statt einer Kreisform. Hier ist mein Code:Kreislayout wird quadratisch, wenn ich den Hintergrund programmatisch setze
Die ovale Form in res/ziehbar
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
android:width="@dimen/avatar_height"
android:height="@dimen/avatar_height" />
</shape>
die Anordnung von Farben, die in ziehbar/Werte/Farben sitzt
<integer-array name="avatar_colors">
<item>@color/avatar_1</item>
<item>@color/avatar_2</item>
<item>@color/avatar_3</item>
<item>@color/avatar_4</item>
</integer-array>
Das ist mein Kreis Layout
<RelativeLayout
android:id="@+id/letter_avatar"
android:layout_width="@dimen/avatar_height"
android:layout_height="@dimen/avatar_height"
android:background="@drawable/avatar">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/textsize_splash_screen"
android:textColor="@color/jwhite"
android:layout_marginBottom="@dimen/gap_small"
android:text="A"
android:layout_centerInParent="true"/>
</RelativeLayout>
und so stelle ich die zufällige Farbe als Hintergrund ein
mLetterAvatar = (RelativeLayout) findViewById(R.id.letter_avatar);
int[] androidColors = getResources().getIntArray(R.array.avatar_colors);
int randomAndroidColor = androidColors[new Random().nextInt(androidColors.length)];
mLetterAvatar.setBackgroundColor(randomAndroidColor);
Und das ist das Ergebnis, das ich bin
Hinweis bekommen: Wenn ich den Hintergrund nicht programmatisch das Layout eine Kreisform hat festgelegt (siehe Screenshot unten)
Wie bekomme ich das Kreislayout und habe die Möglichkeit, eine Farbe programmatisch als Hintergrund hinzuzufügen? Vielen Dank.
Der Hintergrund, den Sie in Ihrem Zeichenfeld festlegen, ist eine kreisförmige Form, der Hintergrund, den Sie in Ihrem Code festlegen, ist kein kreisförmiges Zeichen. Wenn Sie die Farbe ändern möchten, sollten Sie einen Farbton verwenden oder zu einem Zeichen mit einer anderen Farbe wechseln. – Ramin