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); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。