Transition是一种简单的动画显示。这种动画可以平滑的从一种图片变换为另一张图片,不是那种突兀的切换。
Transition可以简单的在两帧之间切换,常用于选择与被选择之间切换,或者渐进的今日新的场景。
XML文件包含切换的帧图片。transition标签作为容器,item为切换用的帧,android:drawable为图片id。
TransitionDrawable获取transition中的资源,之后调用startTransition进行切换,该函数将第一帧切换到第二帧。reverseTransition是另一种切换方式,将反复切换两帧,会根据上一次切换的第二帧作为下一次切换的第一帧。
XML文件代码:
- <?xml version="1.0" encoding="utf-8"?>
- <transition
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:drawable="@drawable/left" />
- <item android:drawable="@drawable/right" />
- </transition>
Activity代码:
- package com.transation.arrow;
- import android.os.Bundle;
- import android.app.Activity;
- import android.graphics.drawable.TransitionDrawable;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.ImageView;
- public class ArrowActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- View mainscreen = findViewById(R.id.mainscreen);
- mainscreen.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- ImageView scene = (ImageView) findViewById(R.id.arrow);
- // TransitionDrawable sceneDrawable = (TransitionDrawable) getResources()
- // .getDrawable(R.anim.arrow);
- // scene.setImageDrawable(sceneDrawable);
- TransitionDrawable sceneDrawable = (TransitionDrawable) scene.getDrawable();
- // sceneDrawable.startTransition(3000);
- sceneDrawable.reverseTransition(3000);
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.arrow, menu);
- return true;
- }
- }