【问题标题】:I want to animate my google maps marker like grow animation when marker is set to visible and shrink animation when marker visibility is gone我想为我的谷歌地图标记设置动画,例如当标记设置为可见时增长动画和当标记可见性消失时缩小动画
【发布时间】:2018-10-31 18:55:57
【问题描述】:

当您选择车辆类型时,我希望这个动画像 uber 应用程序一样,所选车辆出现在地图上,动画不断增长,然后像缩小动画一样消失。 我搜索了很多动画,但找不到任何相关答案。请指导我如何做。 提前致谢。

这是添加标记的代码

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();*/


        }
    }
}

通过这段代码,我添加了标记。现在我希望我的标记出现在带有动画的地图上,而不是直接在地图上弹出。

【问题讨论】:

  • 不,我不想用增长和缩小动画来为我的标记图标设置动画。我不想移动标记。
  • 到目前为止你尝试了什么?
  • @Chisko 检查代码
  • 你们为什么对我的问题给予负面评价

标签: java android google-maps google-maps-markers


【解决方案1】:
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();

试试这个代码来做一个成长动画。如果可行,请尝试在函数中执行此操作并从处理程序中调用它

【讨论】:

  • 不,它不起作用标记只是闪烁并在地图上设置
猜你喜欢
  • 1970-01-01
  • 2016-05-12
  • 2015-05-12
  • 2012-12-07
  • 2012-03-08
  • 1970-01-01
  • 2012-02-24
  • 2014-02-20
  • 2018-01-19
相关资源
最近更新 更多