Как программно перевести нарисованный градиент? - PullRequest
0 голосов
/ 09 апреля 2019

Линейный градиент, который я пытаюсь создать программно:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
    android:type="linear"
    android:centerX="50%"
    android:startColor="#FFFFFFFF"
    android:centerColor="#99FF8A8A"
    android:endColor="#FFF8F8F8"
    android:angle="90"/>
</shape>

Я написал этот код: Но я не получил тот же результат.

GradientDrawable _gradientDrawable = new GradientDrawable(
        GradientDrawable.Orientation.BOTTOM_TOP, new int[]{
        Color.parseColor("#FFFFFFFF"),
        Color.parseColor("#99FF8A8A"),
        Color.parseColor("#FF8F8F8")
});

myimage.setBackground(_gradientDrawable);

Где моя ошибка?

1 Ответ

0 голосов
/ 09 апреля 2019

Чтобы сделать это в коде, вы создаете GradientDrawable.

Единственный шанс установить угол и цвет в конструкторе.

Если вы хотите изменить цвет или угол, просто создайте новый GradientDrawable и установите его в качестве фона.

View layout = findViewById(R.id.mainlayout);

    GradientDrawable gd = new GradientDrawable(
            GradientDrawable.Orientation.TOP_BOTTOM,
            new int[] {0xFF616261,0xFF131313});
    gd.setCornerRadius(0f);

    layout.setBackgroundDrawable(gd);
...