首页 > 解决方案 > 如何以编程方式翻译 Drawable Gradient?

问题描述

我试图以编程方式创建的线性渐变:

<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);

我的错在哪里?

标签: androidxmlgradientdrawable

解决方案


要在代码中执行此操作,您需要创建一个 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);

推荐阅读