如何通过来自 Java(而非 Xml)的可绘制对象创建一个圆圈?

How do I create a circle via a drawable from Java (not Xml)?

我想创建一个可绘制对象,其中包含一个背景颜色来自外部文件的圆圈。因此,不幸的是,我不能简单地从 Xml 文件加载可绘制对象,而是必须在 Java 中动态创建它。 如何直接在 Java 中创建我的圈子?

您可以使用 ShapeDrawables:

ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
shapeDrawable.setIntrinsicHeight(height);
shapeDrawable.setIntrinsicWidth(width);

对于圆形,只需使用相同的高度和宽度即可。

我终于找到了一种创建椭圆形可绘制对象的简单方法:

    GradientDrawable gd = new GradientDrawable();
    int fillColor = Color.parseColor("FF0000");
    gd.setColor(fillColor);
    int strokeWidth = 2; // px not dp
    int strokeColor = Color.parseColor("#000000");
    gd.setStroke(strokeWidth, strokeColor);
    gd.setShape(GradientDrawable.OVAL);