如何在使用Android Canvas.drawCircle()

时间:2018-05-30 15:58:04

标签: android

我正在尝试为绘制在画布上的圆圈设置动画:

Paint pCirclePink = new Paint();

pCirclePink.setColor(Color.parseColor("#ff0000"));

pCirclePink.setAntiAlias(true);

if (userPlaceBeacon != null){

c.drawCircle((float) userPlaceBeacon.getPlacement_x() + offsetX, (float) userPlaceBeacon.getPlacement_y() + offsetY, 30, pCirclePink);

Bitmap bmpUserDestination = ((BitmapDrawable) drawableUserMarker).getBitmap();

bmpUserDestination = Bitmap.createScaledBitmap(bmpUserDestination, 28, 28, false);

c.drawBitmap(bmpUserDestination, (float) userPlaceBeacon.getPlacement_x() + offsetX - 14, (float) userPlaceBeacon.getPlacement_y() + offsetY - 14, null);

}

c.save();

当调用'c.drawCircle'时,我希望圆圈有一个脉冲动画。

圆圈显示用户在平移地图上的当前位置(使用Glide库注入的位图)。

我遇到了麻烦,因为我在网上找到的大多数库/方法都来自View或ViewGroup类;而我正试图绘制一个泛泛且可扩展的BitMap。

以下是我正在使用的更多代码:

Here is more of the code I am working with.

1 个答案:

答案 0 :(得分:1)

有两种方法:

1)您可以通过在onDraw(Canvas canvas)方法中扩展View类和绘制圆来创建自己的自定义视图。要模仿脉冲动画,你必须调用postInvalidate方法一次又一次强制调用onDraw(Canvas画布)方法并绘制你的增加或减少的圆圈。

2)您可以使用简单的比例动画