圆圈不能在屏幕上完美呈现圆形

时间:2015-09-08 11:45:09

标签: android canvas drawing

我需要在画布上绘制从较小到较大半径的几个圆,因为它需要定期更新。我尝试先绘制一个圆圈,但圆圈看起来更像椭圆形。我需要完美的圆圈。另外,我如何动态获得Linearlayout的高度和宽度,以便我可以将圆圈放在中心屏幕上。

这里给出了代码......

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout ll = (LinearLayout) findViewById(R.id.drawCanvas);
        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setColor(Color.parseColor("#CD5C5C"));
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(4);
        Bitmap bm = Bitmap.createBitmap(480,800,Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bm);
        canvas.drawCircle(240, 400, 100, paint);
        ll.setBackgroundDrawable(new BitmapDrawable(bm));
    }

我正在使用Android 3.1(API 12)在真实设备上进行测试。请帮助。

1 个答案:

答案 0 :(得分:0)

通过给出不相等的宽度和高度来绘制位图的圆形。为了绘制圆形,您需要平均地传递位图的宽度和高度。所以尝试平均给出位图宽度和高度。 更改以下行

Bitmap bm = Bitmap.createBitmap(480,800,Bitmap.Config.ARGB_8888);

Bitmap bm = Bitmap.createBitmap(480,480,Bitmap.Config.ARGB_8888);