以编程方式设置itemView的背景

时间:2018-07-01 20:58:30

标签: java android user-interface

我正在尝试通过ViewHolder设置Holder.itemView holder.itemView.setBackground('someKindofDrawable')的背景。

我使用渐变创建了它,但是没有给出预期的结果。 我需要为背景创建一个简单的轻量级组件。

这是我使用的代码:

GradientDrawable gradientRectangle = new GradientDrawable(
                Orientation.TOP_BOTTOM,
                new int[]{0xFFFFFFFF,0x00000000});

gradientRectangle.setShape(GradientDrawable.RECTANGLE); 

holder.itemView.setBackground(gradientRectangle);

图像是预期的结果(边界代表矩形)。

expected result

1 个答案:

答案 0 :(得分:0)

我找到了答案(如果有帮助的话):

public class DrawableItemSelectedBackgroundITopColor
{
    LayerDrawable layerdrawable;
    Drawable[] DrawableArray;

    ColorDrawable topColor;
    ColorDrawable bottomColor;

    public DrawableItemSelectedBackgroundITopColor(Context context, String Theme)
    {

        topColor = new ColorDrawable(ContextCompat.getColor(context,R.color.tiny_prints_blue));
        bottomColor = new ColorDrawable(ContextCompat.getColor(context,R.color.white));

        DrawableArray = new Drawable[]{
                topColor,
                bottomColor
        };

        layerdrawable = new LayerDrawable(DrawableArray);

        layerdrawable.setLayerInset(0,0,0,0,0);
        layerdrawable.setLayerInset(1,0,9,0,0);
    }

    public LayerDrawable getDrawableBackgroundItemTop(){
        return layerdrawable;
    }
}