0

一开始我认为这个问题很容易解决,但事实证明这是一个挑战。

场景 一个 FrameLayout 和两个 ImageView,一个在另一个之上。第一个图像有一个翻译动画和一个 onClick 事件。让我们把它翻译成一些实际的东西:Framelayout 有一个 Rabbit 图像和一个 Bush 图像。兔子有一个平移动画,所以它会移出灌木丛。一旦兔子变得可见,用户就可以点击它。不幸的是,这不能按预期工作。即使兔子不可见(在灌木后面),如果用户点击灌木,兔子的点击事件也会触发。我试图为灌木图像添加 onClick 事件(它不做任何事情),但现在只有这个会触发,而兔子不会。

代码

动画片

<?xml version="1.0" encoding="utf-8"?>
<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0%"
    android:toXDelta="100%"
    android:fromYDelta="0%"
    android:toYDelta="0%"
    android:duration="25000"
    android:zAdjustment="top" />

布局

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layBackground"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:layout_weight="1"
              android:background="@drawable/someimage">

                       <ImageView android:id="@+id/imgAfterBush"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_gravity="bottom|left"
                                 android:layout_marginLeft="50dip"
                                 android:onClick="imgAfterBushOnClick"/>

                      <ImageView android:id="@+id/imgBush"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:src="@drawable/bush"
                                 android:layout_gravity="bottom|left"
                                />
</FrameLayout>

我希望 Rabbit 图像的 onClick 事件仅在可见时触发。有什么解决办法吗?谢谢你。

4

2 回答 2

2

Android < 3.0 上的动画仅影响 View 的渲染:您制作动画的 View 仍处于其原始位置。当动画结束时,您需要自己移动视图(例如通过更改其布局参数)。

于 2011-02-22T17:44:10.237 回答
1

这不是太难,但是您需要先学习:

  • 创建自定义视图

  • 在画布上绘图

  • 在画布上动画图像

  • 检测触摸事件

这是一个简单的开始,我为一个类似的问题做的:如何在画布内使用动画框架?

于 2011-02-22T20:28:14.543 回答