有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android画布。drawCircle()错误。持续绘制椭圆而不是圆

我尝试在Canvas的帮助下,使用drawCircle(…)方法创建一个圆。但最终为什么我得到的是椭圆而不是圆呢?我怎样才能得到“真实”的圆圈

Bitmap bitmap = Bitmap.createBitmap((int) (widthView), heightView, Bitmap.Config.ARGB_8888);
  Canvas canvas = new Canvas(bitmap);
  Paint paint = new Paint();
  paint.setColor(Color.parseColor("#FF950000"));
  paint.setAntiAlias(true);
  paint.setStyle(Style.FILL);
  canvas.drawRect(0.0f, 0.0f, widthView, heightLevel, paint);
  paint.setColor(Color.parseColor("#FFD4A503"));
  canvas.drawRect(0.0f, heightLevel, widthView, 2 * heightLevel, paint);
  paint.setColor(Color.parseColor("#FF4A7816"));
  canvas.drawRect(0.0f, 2 * heightLevel, widthView, 3 * heightLevel,
    paint);
  paint.setColor(Color.parseColor("#FFFFFFFF"));
  canvas.drawCircle(30 * density, getLevelHeight(1), 20f, paint);  graphicView.setBackgroundDrawable(new BitmapDrawable(getResources(),
    bitmap));

结果:

Nexus 4

enter image description here

华为G500Pro(Shine)

enter image description here


共 (1) 个答案

  1. # 1 楼答案

    你应该用setImageBitmap(Bitmap)代替setBackgroundDrawable()

    此外,setBackgroundDrawable()已被弃用