Java 我想在“标记”设置为“可见”时为我的google maps标记设置动画,就像在“标记可见性”消失时为“生长动画”和“收缩动画”一样
我想要这个像优步应用程序一样的动画当你选择车辆类型时,所选的车辆会随着动画的增长出现在地图上,然后像缩小的动画一样消失。 我搜索了很多动画,但没有找到任何相关的答案。请指导我如何做。 提前谢谢 下面是添加标记的代码Java 我想在“标记”设置为“可见”时为我的google maps标记设置动画,就像在“标记可见性”消失时为“生长动画”和“收缩动画”一样,java,android,google-maps,google-maps-markers,Java,Android,Google Maps,Google Maps Markers,我想要这个像优步应用程序一样的动画当你选择车辆类型时,所选的车辆会随着动画的增长出现在地图上,然后像缩小的动画一样消失。 我搜索了很多动画,但没有找到任何相关的答案。请指导我如何做。 提前谢谢 下面是添加标记的代码 private void addDriver(JSONArray jsonArray) { for (int i = 0; i < jsonArray.length(); i++) { if (!(markersList.containsKey(
private void addDriver(JSONArray jsonArray)
{
for (int i = 0; i < jsonArray.length(); i++)
{
if (!(markersList.containsKey(jsonArray.optJSONObject(i).optString("user_id"))))
{
// Log.e("ADDDD","MARKERRRR");
final Marker marker = mGoogleMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(jsonArray.optJSONObject(i).optString("user_lat")),Double.parseDouble(jsonArray.optJSONObject(i).optString("user_long"))))
.snippet(jsonArray.optJSONObject(i).optString("user_id")));
marker.setTag(jsonArray.optJSONObject(i).optString("vehicle_type"));
/* Bitmap markerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
pulseMarker(markerIcon, marker, 3000);*/
markersList.put(jsonArray.optJSONObject(i).optString("user_id"),marker);
/*final Marker marker = mGoogleMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(jsonArray.optJSONObject(i).optString("user_lat")),Double.parseDouble(jsonArray.optJSONObject(i).optString("user_long")))).title("Marker"));
final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
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(2000);
animator.setStartDelay(4000);
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();*/
}
}
}
private void addDriver(JSONArray-JSONArray)
{
for(int i=0;i
通过这段代码,我添加了标记。现在我希望我的标记以动画形式出现在地图上,而不是直接在地图上弹出
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();
请尝试使用此代码执行生长动画。如果可行,尝试在函数内部执行此操作,并从处理程序调用它可能重复否我不想用“增长”和“收缩”动画设置我的标记图标。我不想移动标记。到目前为止你尝试了什么?@Chisko检查代码为什么你们对我的问题给予负面评价否它不起作用标记只是闪烁并启动地图