我正在尝试在将标记添加到地图时对其大小进行动画处理,基本上我希望标记能够增长。我看不到任何获取标记实际视图的方法,所以我认为我无法使用标准的 Android 动画技术(例如ObjectAnimator
).
我能看到做到这一点的唯一方法是实现我自己的动画并使用setIcon
更改标记图标的方法。
还有其他更好的方法吗?
我正在 Xamarin 中工作,但如果需要,可以移植 Java 代码。
你可以尝试这样的事情
final Marker marker = map.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_temperature_kelvin_black_48dp);
final Bitmap target = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(target);
ValueAnimator animator = ValueAnimator.ofFloat(0, 1);
animator.setDuration(500);
animator.setStartDelay(1000);
final Rect originalRect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF scaledRect = new RectF();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float scale = (float) animation.getAnimatedValue();
scaledRect.set(0, 0, originalRect.right * scale, originalRect.bottom * scale);
canvas.drawBitmap(bitmap, originalRect, scaledRect, null);
marker.setIcon(BitmapDescriptorFactory.fromBitmap(target));
}
});
animator.start();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)