-1

我可以以编程方式将半径设置为 ShapeDrawable 吗?

4

2 回答 2

6

你可以这样做:

public static void customView(View v, int backgroundColor, int   borderColor)
{
  GradientDrawable shape = new GradientDrawable();
  shape.setShape(GradientDrawable.RECTANGLE);
  shape.setCornerRadii(new float[] { 8, 8, 8, 8, 0, 0, 0, 0 });
  shape.setColor(backgroundColor);
  shape.setStroke(3, borderColor);
  v.setBackgroundDrawable(shape);
}

您可以在整个应用程序中使用此功能,并且可以放置您选择的边框和背景颜色。

于 2017-03-27T06:42:18.433 回答
1

尝试这个:

        LayerDrawable bgDrawable = (LayerDrawable) btnCallnow.getBackground();
        final GradientDrawable shape = (GradientDrawable) bgDrawable.findDrawableByLayerId(R.id.shape_id);
        shape.setCornerRadius(5.0f);
于 2017-03-27T06:40:38.520 回答