原创文章,转载请标注出处----
首先,定义一个rotate的animation:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000" />
</set>
在code里面,实例化一个freshThrad去画animation。点击stop的时候,call freshThrad.interrupt();将此时wait的freshThrad唤醒,调用imagview的clearAnimation方法,停止动画。
package com.animation.test;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.view.animation.Animation.AnimationListener;
import android.widget.Button;
import android.widget.ImageView;
public class AnimationTest extends Activity implements OnClickListener{
private ImageView icon;
private Animation animation;
private Button btStop;
private Button btStart;
private boolean runFlag = true;
private MyThread freshThrad;
private final static int START_ANIMATION = 100;
private final static int STOP_ANIMATION = 101;
Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch(msg.what){
case STOP_ANIMATION:
icon.clearAnimation();
break;
case START_ANIMATION:
icon.startAnimation(animation);
break;
}
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
icon = (ImageView)findViewById(R.id.icon);
btStop = (Button) findViewById(R.id.stop);
btStart = (Button) findViewById(R.id.start);
btStop.setOnClickListener(this);
btStart.setOnClickListener(this);
showAnimation();
icon.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.icon:
icon.startAnimation(animation);
break;
case R.id.stop:
freshThrad.interrupt();
break;
case R.id.start:
showAnimation();
break;
}
}
private void showAnimation(){
animation = AnimationUtils.loadAnimation(this, R.anim.rotate_animation);
animation.setAnimationListener(new AnimationListener(){
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
icon.startAnimation(animation);
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
});
freshThrad = new MyThread();
freshThrad.start();
}
class MyThread extends Thread {
@Override
public synchronized void run() {
// TODO Auto-generated method stub
Message msg1 = new Message();
msg1.what = START_ANIMATION;
mHandler.sendMessage(msg1);
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
Log.d("debug", "stop therad");
Message msg2 = new Message();
msg2.what = STOP_ANIMATION;
mHandler.sendMessage(msg2);
e.printStackTrace();
}
}
}
}
电击start之后,重新起thread开始动画。
- 大小: 8.3 KB
分享到:
相关推荐
android多线程机制教程 android多线程机制 android多线程机制 android多线程机制
android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序
Android 进行文件分段多线程下载的实例,用户可以指定线程数,还可以通过进度条查看下载的进度。
Android实现网络多线程下载,断点续传,压缩包内有两个项目: downloadDemo:多线程下载 MulThreadDownloader:断点续传(网上别人的项目)
一个书上的例子,android多线程下载,支持下载暂停,断点续传
Android 多线程开发实例,对使用多线程的用户有一定的参考价值!
Android多线程下载,支持断点续传,修改线程数。。。。。
因Android Studio下整体项目太大,此文件仅包含核心代码,核心都在MainActivity中,包括: 1. 主线程直接加载,不可用; 2. 采用handler+Thread模式实现多线程异步加载; 3. 引入线程池来管理多线程 4. 引入线程池,...
Android多线程下载Demo
android多线程断点下载,完美封装,包括暂停功能。写好接口,android小白即能轻松上手。
Android多线程下载文件,支持断点续传,这里用的数据库存储
android多线程
android多线程管理,实现多线程
Android 多线程下载进度条 demo src
android 多线程断点下载及进度实时更新demoandroid 多线程断点下载及进度实时更新demo
android多线程分段下载apk,子线程更新UI,下载完后跳转至应用安装界面。
android 实现多线程下载源代码 代码详细 很好学习资料
Android多线程全新讲解.pdf
Android多线程下载,移植了上一次java编程中的代码。。。
自己写的Android多线程多任务断点下载的一个Demo。 1.通过Service和线程池配合控制下载任务(包含分段下载)的开始和暂停; 2.通过数据库对文件信息以及下载线程信息进行保存,实现断点下载。 有发现的bug希望各路坛...