我正在尝试使用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);
现在问题是,当按下屏幕时,背景图像在
之间切换
和
正如您所看到的,第一张图像包含播放和暂停按钮,可能在第二张图像上也有两个播放图像。< / 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>
答案 0 :(得分:0)
也许只需在开始时在background.xml中将背景设置为start_background_pressed
即可。通过将其设置为布局文件中的过渡,它可能不够智能来处理它。两者都可能被吸引。
然后,您可以在代码首次与其进行交互时设置转换。我认为从那时起它将按预期工作。