布局:

<LinearLayout 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"    android:orientation="vertical"    android:background="#000000">   <Button android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/btn"    android:text="Hello!"/></LinearLayout>



代码: 使用handler的postDelayed方法每半秒钟发送一个消息来执行动画效果,同时在handler里面使动画平移的距离缩短,当距离为零时就通过handler的 removeCallbacks方法取消runnable正在执行的操作每一次点击按钮都重置一下动画的距离,并且开启runnable,执行操作!

package com.example.viewpager;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.TranslateAnimation;import android.widget.Button;public class MainActivity extends Activity {private Button btn;private int length;Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {switch (msg.what) {case 0:length -= 2.5;TranslateAnimation animation = new TranslateAnimation(0,length , 0, 0);animation.setDuration(50);Log.i("----", length+"");btn.startAnimation(animation);if(length==0){handler.removeCallbacks(runnable);}break;default:break;}};};Runnable runnable = new Runnable() {public void run() {handler.sendEmptyMessage(0);handler.postDelayed(this, 80);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.btn);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {length = 30;handler.post(runnable);}});}@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;}}


更多相关文章

  1. android 短信格式
  2. Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)
  3. Android(安卓)属性动画实现的扇形菜单效果
  4. Android(安卓)下拉展开动画
  5. Android无EditText时获取扫描设备的扫描结果
  6. android简单的计算器
  7. Android(安卓)水波纹扩散效果

随机推荐

  1. Android(安卓)package属性、package name
  2. Android(安卓)OpenGL ES 分析与实践(2)
  3. 2010-09-21 15:58 [摘]Android如何将程序
  4. Animation & Property Animation 使用
  5. Android线程中Handle的使用
  6. Flutter环境的搭建
  7. Android(安卓)UI 之 获取组件或者元素的
  8. Android开发者指南(2) —— aapt
  9. ArcGIS在Android的应用
  10. Android(安卓)studio 分渠道打包,引用不同