我需要在画布上绘制从较小到较大半径的几个圆,因为它需要定期更新。我尝试先绘制一个圆圈,但圆圈看起来更像椭圆形。我需要完美的圆圈。另外,我如何动态获得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)在真实设备上进行测试。请帮助。
答案 0 :(得分:0)
通过给出不相等的宽度和高度来绘制位图的圆形。为了绘制圆形,您需要平均地传递位图的宽度和高度。所以尝试平均给出位图宽度和高度。 更改以下行
Bitmap bm = Bitmap.createBitmap(480,800,Bitmap.Config.ARGB_8888);
到
Bitmap bm = Bitmap.createBitmap(480,480,Bitmap.Config.ARGB_8888);