用不同的边框颜色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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...