首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在画布上画两个圆

在画布上画两个圆
EN

Stack Overflow用户
提问于 2013-01-21 19:50:08
回答 1查看 2.4K关注 0票数 7

我试着像这样画两个圆圈:

这就是我想要做的:

代码语言:javascript
复制
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);

Canvas c = new Canvas(bmp);

RectF rect = new RectF(0,0,width,width);
Paint paint = new Paint();
drawCircles(paint, c, width, height, width);
ImageView img = (ImageView) findViewById(R.id.imageView1);
img.setImageBitmap(bmp);
img.setScaleType(ScaleType.FIT_CENTER);

下面是我的drawCircles()方法:

代码语言:javascript
复制
private void drawCircles(Paint paint, Canvas c, int width, int height, int radius) {
        paint.setARGB(255, 255 , 10, 21);
        paint.setStrokeWidth(10);
        paint.setAntiAlias(true);
        paint.setStrokeCap(Paint.Cap.BUTT);
        paint.setStyle(Paint.Style.STROKE);
        if(width < height && radius == 0){
            radius = width/2;
            height = width;
        } else if (radius == 0){
            radius = height/2;
            width = height;
        }
        Paint paint2 = new Paint();
        paint2.setARGB(255, 255 , 10, 21);
        paint2.setStrokeWidth(10);
        paint2.setAntiAlias(true);
        paint2.setStrokeCap(Paint.Cap.BUTT);
        paint2.setStyle(Paint.Style.STROKE);
        c.drawCircle(width/2, height/2, radius-10, paint);
        c.drawCircle(width/2, height/2, 50, paint2);
}

我不知道为什么,但我只得到了一个圆,小的那个(用paint2画的那个)。可能的原因是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-21 20:16:37

试试这个code.Hope,它可能会有帮助:)

代码语言:javascript
复制
public class SimpleCircleActivity extends Activity
{

       private CircleDemoView circledemoView ;

       public void onCreate(Bundle savedInstanceState)
       { 
        super.onCreate(savedInstanceState);

        circledemoView =new CircleDemoView(this);
        setContentView(circledemoView);

       }


       private class CircleDemoView extends View
       {
         public CircleDemoView(Context context)
         {
             super(context);
         }

         @Override
         protected void onDraw(Canvas canvas) 
         {

             super.onDraw(canvas);
             Paint p = new Paint();
             p.setColor(Color.RED);
             DashPathEffect dashPath = new DashPathEffect(new float[]{5,5}, (float)1.0);

             p.setPathEffect(dashPath);
             p.setStyle(Style.STROKE);


             for (int i = 0; i < 2; i ++) {
                 canvas.drawCircle(200, 200, 50+(i*40), p);
             }


             invalidate();

     }
     }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14437997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档