【发布时间】:2016-11-14 20:18:51
【问题描述】:
有没有办法为图标设置动画?我需要在我的谷歌地图上对我的自定义可绘制标记应用“波浪”动画。任何建议都非常受欢迎!
注意:我现在的计划是运行一个处理程序工作线程,该线程将不断调用“setIcon”方法,从而为图标设置动画。
想要的效果:
我的可绘制图标:
XML:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#0093e8"/>
<size
android:width="120dp"
android:height="120dp"/>
</shape>
这是我的 onMapReady 方法:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mDotMarkerBitmap = generateBitmapFromDrawable();
markerOptions = new MarkerOptions()
.position(xDesign)
.title("xDesign in Edinburgh")
.icon(BitmapDescriptorFactory.fromBitmap(mDotMarkerBitmap));
mXDesignMarker = mMap.addMarker(markerOptions);
BitmapDescriptor bitmapDescriptor = markerOptions.getIcon();
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setDuration(1000);
AnimationSet animation = new AnimationSet(true);
animation.addAnimation(fadeOut);
// Icons dont have animate method icon.setAnimation(animation);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(xDesign, 15));
}
我的 generateBitmapFromDrawable 方法:
private Bitmap generateBitmapFromDrawable() {
int px = getResources().getDimensionPixelSize(R.dimen.map_dot_marker_size);
Bitmap mDotMarkerBitmap = Bitmap.createBitmap(px, px, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(mDotMarkerBitmap);
Drawable shape = getResources().getDrawable(R.drawable.circle_drawable);
shape.setBounds(0, 0, mDotMarkerBitmap.getWidth(), mDotMarkerBitmap.getHeight());
shape.draw(canvas);
return mDotMarkerBitmap;
}
【问题讨论】:
-
这个叫涟漪效应,有一些自定义库,stackoverflow.com/questions/26604134/…
标签: android google-maps-api-3 google-maps-markers