android - 我可以在 MapView 的叠加层中使用 AnimationDrawable 吗?

标签 android android-mapview android-maps

我用 XML 创建了一个 AnimationDrawable,它工作正常。但是在将可绘制对象作为覆盖标记移动到 MapView 中(替换工作正常的静态可绘制对象)时,动画顽固地拒绝播放。我已将对 start() 的调用移至一个按钮以进行测试,即使在显示 MapView 几秒钟后按下,动画也不会启动。我在 logcat 中什么也没看到。我知道 start() 需要在设置完所有窗口后调用,但这似乎是一个单独的问题。

AnimationDrawable 是否与 MapView 兼容?

要在 MapView 中工作,我需要做些什么特别的事情吗?

您是否曾在 MapView 中成功完成过一项工作?

解决方案

使用 Matt 的解决方案(如下),我通过将 ImageView 放在 MapView 的层内而不是使用叠加来添加 AnimationDrawable。

public void showAnimatedMarker(GeoPoint point) {
    LinearLayout v = (LinearLayout) View.inflate(context, R.layout.markerlayout, null);
    ImageView marker = (ImageView) v.findViewById(R.id.marker);
    AnimationDrawable markerImage = (AnimationDrawable)marker.getDrawable();
    this.addView(v, 0, new MapView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, point, MapView.LayoutParams.BOTTOM_CENTER));
    markerImage.start();
}

然后是markerlayout.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/marker"
            android:src="@drawable/my_animation_drawable"
    />
</LinearLayout>

最佳答案

这未经动画测试,但可能会有一些用处。

我在将小部件添加到 MapView 时遇到了问题,但找到了 addView 方法。尝试通过此方法添加 AnimationDrawable,它可能会改变 MapView 处理它的方式,从而正确设置动画:

看看这里的一个小例子: http://www.gauntface.co.uk/pages/blog/2010/01/04/mapview-with-widgets-android/

关于android - 我可以在 MapView 的叠加层中使用 AnimationDrawable 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407475/

相关文章:

android - 当一个或多个可见性设置为 GONE 时,在 RelativeLayout 中垂直居中 TextView

Android:倒计时器

java - Android 平台上的 HttpsURLConnectionImpl.getInputStream() 错误

php - 如何在上传时将音频转换为 ".WAV"格式

android - 检查 GPS 纬度/经度点是否位于 Google map 中的道路上

Android:如何在 map 上添加半透明地理围栏

android - 获取当前正在绘制的 OverlayItem

android - 如何设置 Android 谷歌地图一次显示整个(部分)世界地图?

Android : Showing MyLocationOverlay. enableMyLocation 作为指南针

Android 双击,ontouchevent 不工作