android 标记点动画,如何将标记添加到Android地图上时进行动画处理?

将标记关闭屏幕或开始位置,然后开始动画。

注意.setAnchor此方法中使用被添加到谷歌地图API第2版2013年5月

我刚才得到这个工作了一个标记通过调整额外样品地图演示,我不不喜欢这个实现的性能。最重要的部分是将标记从屏幕上关闭或关闭在起始位置。我正在使用上面的屏幕。

锚标记戏外.setAnchor(.5f,(屏幕上方标记标记/尺寸)的大小)//对地图演示珀斯为约1207米为我的测试电话。将动画更改为弹回相同的值对于我的测试电话,它的值为6f。

private void addMarkersToMap() {

// A few more markers for good measure.

mPerth = mMap.addMarker(new MarkerOptions().position(PERTH)

.title("Perth").snippet("Population: 1,738,800")

.anchor(.5f, 6f)

);

改变动画所以它反弹至(以上标记物的标记物/尺寸屏幕的大小)(我的测试电话上6F)。我只是使用onclick处理程序,因为它已经设置为反弹并调整为6f并且持续时间更长。因此,在所有标记添加到地图后,我点击了点击处理程序。

this.onMarkerClick(mPerth);

更改的onMarkerClick处理程序与6f和更长的持续时间。

@Override

public boolean onMarkerClick(final Marker marker) {

if (marker.equals(mPerth)) {

// This causes the marker at Perth to bounce into position when it

// is clicked.

final Handler handler = new Handler();

final long start = SystemClock.uptimeMillis();

final long duration = 2500;

final Interpolator interpolator = new BounceInterpolator();

handler.post(new Runnable() {

@Override

public void run() {

long elapsed = SystemClock.uptimeMillis() - start;

float t = Math.max(

1 - interpolator.getInterpolation((float) elapsed

/duration), 0);

marker.setAnchor(0.5f, 1.0f + 6 * t);

if (t > 0.0) {

// Post again 16ms later.

handler.postDelayed(this, 16);

}

}

});

} else if (marker.equals(mAdelaide)) {

// This causes the marker at Adelaide to change color.

marker.setIcon(BitmapDescriptorFactory.defaultMarker(new Random()

.nextFloat() * 360));

}

// We return false to indicate that we have not consumed the event and

// that we wish

// for the default behavior to occur (which is for the camera to move

// such that the

// marker is centered and for the marker's info window to open, if it

// has one).

return false;

}

好运

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,很高兴为您服务。对于您的问题,我可以提供一些指导和建议,但是需要更多的具体细节才能帮助您完整实现。 首先,您可以在Android的XML文件中使用<set>标记定义一个组合动画。使用<set>标记,您可以将多个动画组合在一起,以便同时播放或按顺序播放。 下面是一个示例代码片段,展示如何使用<set>标记定义组合动画: ``` <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%" android:toXDelta="0" android:duration="500" /> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" /> <scale android:fromXScale="0.0" android:fromYScale="0.0" android:toXScale="1.0" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:duration="500" /> </set> ``` 在上面的示例代码中,我们将一个位于屏幕左侧的视图向右平移,并在此过程中逐渐增加其透明度,同时将其缩放为正常大小。您可以根据需要修改这些属性,以创建自己的组合动画。 在Java代码中,您可以像以下这样加载并启动此组合动画: ``` Animation anim = AnimationUtils.loadAnimation(this, R.anim.my_compound_animation); myView.startAnimation(anim); ``` 在上面的示例代码中,我们根据当前Android应用程序的上下文和动画文件的资源ID,从资源目录中加载组合动画。通过调用startAnimation()方法,我们可以将此动画应用于视图。 希望这些信息能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值