Android窗口抖动之动画实现

    xiaoxiao2026-05-15  7

    

    Android窗口抖动之动画实现

    Android的窗口抖动,可以通过写xml动画配置文件实现,比如常见的微信摇一摇,其实就是通过Android动画的一些基本属性如translate,cycleInterpolator实现的。 现在写一个代码,实现一个基本的窗口view抖动的效果,简单期间,就以一个TextView为例,让其抖动。activity_main.xml代码文件:

    [html]  view plain  copy   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"       xmlns:tools="http://schemas.android.com/tools"       android:layout_width="match_parent"       android:layout_height="match_parent"       tools:context="zhangphil.anim.MainActivity" >          <TextView           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_centerInParent="true"           android:background="#e53935"           android:id="@+id/text"           android:text="窗口抖动  Zhang Phil @ " />      </RelativeLayout>  

    测试的activity MainActivity.Java:

    [java]  view plain  copy   package zhangphil.anim;      import android.app.Activity;   import android.os.Bundle;   import android.view.Menu;   import android.view.MenuItem;   import android.view.animation.Animation;   import android.view.animation.AnimationUtils;   import android.widget.TextView;      public class MainActivity extends Activity {          private TextView text;              @Override       protected void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.activity_main);                      text=(TextView) findViewById(R.id.text);       }          @Override       public boolean onCreateOptionsMenu(Menu menu) {           getMenuInflater().inflate(R.menu.main, menu);           return true;       }          @Override       public boolean onOptionsItemSelected(MenuItem item) {           int id = item.getItemId();           if (id == R.id.action_anim) {                              Animation anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.myanim);               text.startAnimation(anim);                              return true;           }           return super.onOptionsItemSelected(item);       }   }  

    TextView所在的布局文件及测试的Activity本身可以写的很简单,复杂的地方在res/anim目录下所写的那些动画属性配置文件。

    res/anim目录下的myanim.xml文件代码:

    [html]  view plain  copy   <?xml version="1.0" encoding="utf-8"?>   <set xmlns:android="http://schemas.android.com/apk/res/android"       android:interpolator="@anim/cycle" >          <translate           android:duration="300"           android:fromXDelta="0"           android:fromYDelta="0"           android:toXDelta="-10"           android:toYDelta="-10" />       <translate           android:duration="300"           android:fromXDelta="0"           android:fromYDelta="0"           android:startOffset="300"           android:toXDelta="10"           android:toYDelta="-10" />       <translate           android:duration="300"           android:fromXDelta="0"           android:fromYDelta="0"           android:startOffset="600"           android:toXDelta="-10"           android:toYDelta="10" />       <translate           android:duration="300"           android:fromXDelta="0"           android:fromYDelta="0"           android:startOffset="900"           android:toXDelta="10"           android:toYDelta="10" />   </set>  

    myanim.xml代码文件需要用到的cycleInterpolator配置文件cycle.xml代码文件:

    [html]  view plain  copy   <?xml version="1.0" encoding="utf-8"?>   <cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"       android:cycles="2" />  
    转载请注明原文地址: https://ju.6miu.com/read-1309723.html
    最新回复(0)