如何在Android中使用Java在画布上绘制圆形

5

我希望在我的安卓应用中的画布上画一个圆。我搜索了很多,发现如果需要一种可以随时更新的动态绘画形式,需要使用画布而不是imageView。

非常感谢您的帮助

这是我目前写的代码,但它没有在安卓设备屏幕上绘制任何东西:

    private void createBitMap() {
    Bitmap bitMap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);  //creates bmp
    bitMap = bitMap.copy(bitMap.getConfig(), true);     //lets bmp to be mutable
    Canvas canvas = new Canvas(bitMap);                 //draw a canvas in defined bmp

    Paint paint = new Paint();                          //define paint and paint color
    paint.setColor(Color.RED);
    paint.setStyle(Style.FILL_AND_STROKE);
    //paint.setAntiAlias(true);

    canvas.drawCircle(50, 50, 10, paint);
}

1
可能重复:https://dev59.com/RmMl5IYBdhLWcg3w_rOD - John
请直接使用以下代码:protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(x, y, radius, paint);} - Shailendra Madda
1个回答

2

试试这个

创建一个ImageView,并使用image.setImageBitmap(bitMap);让位图可见。

public class MainActivity extends Activity { ImageView image;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        image=(ImageView)findViewById(R.id.imageView1);
        createBitMap();
    }

    private void createBitMap() {
        Bitmap bitMap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);  //creates bmp
        bitMap = bitMap.copy(bitMap.getConfig(), true);     //lets bmp to be mutable
        Canvas canvas = new Canvas(bitMap);                 //draw a canvas in defined bmp

        Paint paint = new Paint();
        // smooths
       paint.setAntiAlias(true);
        paint.setColor(Color.RED);
       paint.setStyle(Paint.Style.STROKE); 
        paint.setStrokeWidth(4.5f);
        // opacity
        //p.setAlpha(0x80); //
        canvas.drawCircle(50, 50, 30, paint);
        image.setImageBitmap(bitMap);
    }

谢谢您的回复。我只想更改自己的代码,以便可以绘制圆形。更改整个意味着从头开始阅读每一行 :) - Hossein Dolatabadi
现在我根据您的需求更改了我的答案。 - Nambi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接