android - 绘制具有不同边框颜色的圆形Android

标签 android

public static Bitmap drawCircle(int width,int height, int borderWidth) {
    Bitmap canvasBitmap = Bitmap.createBitmap( width, height, Bitmap.Config.ARGB_8888);
    BitmapShader shader = new BitmapShader(canvasBitmap, TileMode.CLAMP,      
            TileMode.CLAMP);
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setShader(shader);
    paint.setShader(null);
    paint.setStyle(Paint.Style.STROKE);
    paint.setColor(Color.WHITE);
    paint.setStrokeWidth(borderWidth);  
    Canvas canvas = new Canvas(canvasBitmap);
    float radius = width > height ? ((float) height) / 2f : ((float) width) / 2f;
    canvas.drawCircle(width / 2, height / 2, radius - borderWidth / 2, paint);
    return canvasBitmap;
}

简单的这段代码绘制了一个带有白色边框的圆,但是我希望边框的一部分是黑色的,而另一部分是白色的。 40% 黑色,60% 白色

如何做到这一点?

最佳答案

试试这段代码

class MyView extends View
{
    private Paint paint;

    public MyView(Context context, int x, int y)
    {
        super(context);
        paint = new Paint();
        // PorterDuffXfermode xfermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR);

        paint.setStyle(Paint.Style.STROKE);
        paint.setColor(Color.RED);


        paint.setAlpha(255);
        // paint.setXfermode(xfermode);
        paint.setAntiAlias(true);
        // setBackgroundColor(Color.BLACK);
    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        canvas.drawCircle(100, 100, 50, paint);
    }
}

关于android - 绘制具有不同边框颜色的圆形Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22223459/

相关文章:

java - libgdx 中的居中对齐文本

Java 真正的全局变量(Android 版 Eclipse)

java - 以编程方式重新安装应用程序 apk 而无需下载

android - 在 ScrollView 中使用 onOverScrolled

android - NestedScrollView 中的 WebView 给出致命信号 6 (SIGABRT) 代码 -6 RenderThread

java - 什么是用于搜索的 Retrofit OR 运算符

android - R.java 未生成,R 无法解析为变量

Java/Android 自动解析泛型类型。寻求逐步指导以了解

java - PocketSphinx Android 演示运行时异常

android - 多个 Activity APN