帧动画

来源:互联网 发布:实体店铺设计软件 编辑:程序博客网 时间:2024/05/23 01:20

motionleft.xml

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" >    <item android:drawable="@drawable/pig3" android:duration="40" />    <item android:drawable="@drawable/pig4" android:duration="40" /></animation-list>

motionright.xml

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" >    <item android:drawable="@drawable/pig1" android:duration="40" />    <item android:drawable="@drawable/pig2" android:duration="40" /></animation-list>

translateleft.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" ><translate     android:fromXDelta="850"    android:toXDelta="0"    android:fromYDelta="0"    android:toYDelta="0"    android:duration="3000"></translate> </set>

translateright.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate     android:fromXDelta="0"    android:toXDelta="850"    android:fromYDelta="0"    android:toYDelta="0"    android:duration="3000"></translate> </set>

fragment_main。xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/linearLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/background"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.xwy.yezhu.MainActivity$PlaceholderFragment" >    <ImageView         android:id="@+id/imageView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@anim/motionright"        android:layout_marginTop="280px"        android:layout_marginLeft="30px" /></LinearLayout>

Mianactivity.java

package com.xwy.yezhu;import android.support.v4.app.Fragment;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.ViewGroup;import android.view.animation.Animation;import android.view.animation.Animation.AnimationListener;import android.view.animation.AnimationUtils;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class MainActivity extends Activity {private AnimationDrawable anim;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fragment_main);final ImageView iv=(ImageView)findViewById(R.id.imageView1);//获取要应用动画效果的ImageViewfinal Animation translateright=AnimationUtils.loadAnimation(this, R.anim.translateright);//获取“向右奔跑”的动画资源final Animation translateleft=AnimationUtils.loadAnimation(this, R.anim.translateleft);//获取“向左奔跑”的动画资源anim=(AnimationDrawable)iv.getBackground();//获取应用的帧动画LinearLayout ll=(LinearLayout)findViewById(R.id.linearLayout1);//获取线性布局管理器Toast.makeText(this,"触摸屏幕开始播放...", Toast.LENGTH_SHORT).show();//显示一个消息提示框ll.setOnTouchListener(new OnTouchListener() {public boolean onTouch(View v, MotionEvent event) {anim.start();//开始播放帧动画iv.startAnimation(translateright);//播放“向右奔跑”的动画return false;}});translateright.setAnimationListener(new AnimationListener() {public void onAnimationStart(Animation animation) {}public void onAnimationRepeat(Animation animation) {}public void onAnimationEnd(Animation animation) {iv.setBackgroundResource(R.anim.motionleft);//重新设置ImageView应用的帧动画iv.startAnimation(translateleft);//播放“向左奔跑”的动画anim=(AnimationDrawable)iv.getBackground();//获取应用的帧动画anim.start();//开始播放帧动画}});translateleft.setAnimationListener(new AnimationListener() {public void onAnimationStart(Animation animation) {}public void onAnimationRepeat(Animation animation) {}public void onAnimationEnd(Animation animation) {iv.setBackgroundResource(R.anim.motionright);//重新设置ImageView应用的帧动画iv.startAnimation(translateright);//播放“向右奔跑”的动画anim=(AnimationDrawable)iv.getBackground();//获取应用的帧动画anim.start();//开始播放帧动画}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/** * A placeholder fragment containing a simple view. */public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}}


0 0
原创粉丝点击