0

我有许多形状,我有一个视图。我需要根据用户输入动态(即以编程方式)选择要设置为视图背景的形状。所以我的问题是:我应该以编程方式将形状变成 ShapeDrawable 之类的?

我已经看过如何动态更改形状颜色?. 这些帖子假定该形状已附加到视图。但我所有的形状都是自由球员。

4

2 回答 2

1

似乎这不适用于ShapeDrawable,但看看我的GradientDrawable示例:

你可以动态创建渐变绘制..使用下面的类

import android.graphics.drawable.GradientDrawable;

public class SomeDrawable extends GradientDrawable {

public SomeDrawable(int pStartColor, int pCenterColor, int pEndColor, int pStrokeWidth, int pStrokeColor, float cornerRadius) {
    super(Orientation.BOTTOM_TOP,new int[]{pStartColor,pCenterColor,pEndColor});
    setStroke(pStrokeWidth,pStrokeColor);
    setShape(GradientDrawable.RECTANGLE);
    setCornerRadius(cornerRadius);
}

}

并使用这个类如下

SomeDrawable drawable = new SomeDrawable(Color.parseColor("Start Color Code"),Color.parseColor("Center Color Code"),Color.parseColor("End Color Code"),1,Color.BLACK,00);
yourLayout.setBackgroundDrawable(drawable);
于 2013-08-22T06:02:30.217 回答
0

我刚刚发现我可以做到

myview.setBackgroundResource(R.drawable.my_shape)
于 2013-08-22T05:55:08.887 回答