我有许多形状,我有一个视图。我需要根据用户输入动态(即以编程方式)选择要设置为视图背景的形状。所以我的问题是:我应该以编程方式将形状变成 ShapeDrawable 之类的?
我已经看过如何动态更改形状颜色?. 这些帖子假定该形状已附加到视图。但我所有的形状都是自由球员。
我有许多形状,我有一个视图。我需要根据用户输入动态(即以编程方式)选择要设置为视图背景的形状。所以我的问题是:我应该以编程方式将形状变成 ShapeDrawable 之类的?
我已经看过如何动态更改形状颜色?. 这些帖子假定该形状已附加到视图。但我所有的形状都是自由球员。
似乎这不适用于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);
我刚刚发现我可以做到
myview.setBackgroundResource(R.drawable.my_shape)