我遇到過無法找到解決方案的問題。我有一個圓形佈局,我將隨機顏色設置爲背景。問題是,佈局是正方形而不是圓形。這是我的代碼:如果我以編程方式設置背景,則圓形佈局將變爲正方形
在res的橢圓形/抽拉
<?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>
的顏色它位於抽拉/值/顏色
<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>
陣列這是我的圓周佈置
<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>
這就是我如何設置隨機顏色作爲背景
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);
這是我得到
注的結果:如果我不設置背景編程佈局具有圓形(見下面的屏幕截圖)
如何獲得圓形佈局並可選擇以編程方式添加背景色作爲背景?謝謝。
您在drawable中設置的背景是圓形,您在代碼中設置的背景不是圓形的drawable。如果你想改變顏色,你應該使用色調或改變爲不同顏色的繪圖。 – Ramin