TransitionAnimation显示在彼此之上

时间:2014-07-22 19:22:16

标签: android android-layout android-drawable

我正在尝试使用TransitionAnimation在两个背景图像之间切换。

这是main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/screen"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MyActivity"
  tools:deviceIds="wear_round"
  android:background="@drawable/background">
</RelativeLayout>

正如您所看到的,背景被称为&#34;背景&#34;。它的代码如下:

<transition xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:drawable="@drawable/start_background"/>
  <item
    android:drawable="@drawable/pause_background"/>
</transition>

start_background和pause_background是两个不同的图像,一个代表像&#34; play&#34;按钮和另一个&#34;暂停&#34;按钮。

现在我称之为过渡:

private TransitionAnimation transition;
private RelativeLayout screen;

screen = (RelativeLayout)findViewById(R.id.screen);
transition = (TransitionDrawable)screen.getBackground();

现在按下屏幕时,会调用以下方法:

transition.startTransition(100);

transition.reverseTransition(100);

现在问题是,当按下屏幕时,背景图像在

之间切换

enter image description here

enter image description here

正如您所看到的,第一张图像包含播放暂停按钮,可能在第二张图像上也有两个播放图像。< / p>

我不知道那是怎么回事,有什么建议吗?

以下是两个背景文件:

pause_background.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:state_pressed="true"
    android:drawable="@drawable/pause_background_pressed"/>

  <item
    android:drawable="@drawable/pause_background_default"/>
</selector>

start_background.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:state_pressed="true"
    android:drawable="@drawable/start_background_pressed"/>

  <item
    android:drawable="@drawable/start_background_default"/>
</selector>

1 个答案:

答案 0 :(得分:0)

也许只需在开始时在background.xml中将背景设置为start_background_pressed即可。通过将其设置为布局文件中的过渡,它可能不够智能来处理它。两者都可能被吸引。

然后,您可以在代码首次与其进行交互时设置转换。我认为从那时起它将按预期工作。