Создать программный фон андроида
в нашем приложении я могу создать простой xml для формы, чтобы использовать его в фоне виджетов Android. в моих xml углах и цвет должен быть другим, и я не люблю создавать некоторые xml с некоторыми цветами или углами. как создать эту форму программно?
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<solid android:color="#e67e22" />
<corners
android:topLeftRadius="0dp"
android:topRightRadius="0dp"
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
/>
</shape>
например, у меня есть простая функция, чтобы получить угол, цвет и установить, чтобы форма
мой код:
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.category_header);
GradientDrawable drawable = (GradientDrawable) linearLayout.getDrawable();
float[] values = { 0.2f, 0.2f, 0.2f, 0.2f };
drawable.setCornerRadii(values);
Ошибка:
The method getDrawable() is undefined for the type LinearLayout
Ответы
Ответ 1
Вы можете сделать это так:
public static void customView(View v, int backgroundColor, int borderColor)
{
GradientDrawable shape = new GradientDrawable();
shape.setShape(GradientDrawable.RECTANGLE);
shape.setCornerRadii(new float[] { 8, 8, 8, 8, 0, 0, 0, 0 });
shape.setColor(backgroundColor);
shape.setStroke(3, borderColor);
v.setBackgroundDrawable(shape);
}
Смотрите документацию для значения setCornerRadii
.
Вы можете использовать эту функцию во всем приложении и можете поместить цвет границы и фона по вашему выбору.