android - 如何在android中为标记设置动画
问题描述
顺便说一句,我有这段代码是借来的...
Ice Cream Sandwich compatible
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static void animateMarkerToICS(Marker marker, LatLng finalPosition, final LatLngInterpolator latLngInterpolator) {
TypeEvaluator<LatLng> typeEvaluator = new TypeEvaluator<LatLng>() {
@Override
public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) {
return latLngInterpolator.interpolate(fraction, startValue, endValue);
}
};
Property<Marker, LatLng> property = Property.of(Marker.class, LatLng.class, "position");
// ADD THIS TO STOP ANIMATION IF ALREADY ANIMATING TO AN OBSOLETE LOCATION
if(animator != null && animator.isRunning()) {
animator.cancel();
animator = null;
}
animator = ObjectAnimator.ofObject(marker, property, typeEvaluator, finalPosition);
animator.setDuration((long) ANIMATION_DURATION);
animator.start();
}
发生的事情是我在这行代码中有问题..
animator = ObjectAnimator.ofObject(marker, property, typeEvaluator, finalPosition);
animator.setDuration((long) ANIMATION_DURATION);
animator.start();
我使用 api 17,但库 FrameMetrics.ANIMATION_DURATION 从 api 24 开始工作......我想继续使用 api 17 有没有办法给我的 animator.setDuration () 提供与库相同的值?
解决方案
据我了解,您FrameMetrics.ANIMATION_DURATION
仅用于动画持续时间。您可以使用所需的值,例如 1000 或 100,也可以使用FrameMetrics.ANIMATION_DURATION
映射到 2 的 Constant 值。使用常量值将消除 API 24 作为最低 API 的要求。利用
animator.setDuration(getResources().getInteger(android.R.integer.config_mediumAnimTime));
或者
animator.setDuration(1000);
推荐阅读
- flutter - 创建自己的颤振插件
- java - Android,带按钮的图像和文本
- python - 将数据输入 Matplot/pylab 用于散点图
- c# - C# 中的 TreeView 和具有唯一 ID 的 MS Access
- swift - 如何显示照片中的图像(ios中的原始照片库)
- amazon-web-services - 如何在将数据放入elasticsearch的同时放置用户定义的动态映射?
- jquery - jQuery addClass 向所有元素添加类
- python - Django 单选按钮在 mark_safe() 内显示为项目符号列表
- node.js - 在nest.js 中使用带有nestjsx-automapper 的配置文件
- azure-active-directory - 无法生成访问令牌和刷新令牌