您的位置:首页 > 其它

雷达扫描动画

2015-10-15 14:01 246 查看
package com.duguang.baseanimation.ui.imitate;

import android.content.pm.PackageManager;
import android.os.Handler;
import android.os.Message;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.duguang.baseanimation.R;
import com.duguang.baseanimation.ui.base.BaseActivity;

public class RadarMainActivity extends BaseActivity{

protected static final String tag = "AntiVirusActivity";
protected static final int SCAN_LODING = 1;
protected static final int FINSH_SCAN = 2;
private ImageView im_scan;
private ImageView im_dian;
private TextView tv_lodingApk;
private TextView tv_count;
private LinearLayout ll_scanText;
private ProgressBar pb_loding;

private int count;

private Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case SCAN_LODING:
tv_lodingApk.setText("正在扫描:第"+count+"个BaseAnimation动画");
TextView tv = new TextView(RadarMainActivity.this);
tv.setTextSize(14);
tv_count.setText("已扫描:"+count+"个BaseAnimation动画");
ll_scanText.addView(tv,0);
break;
case FINSH_SCAN:
tv_lodingApk.setText("扫描完毕");
im_scan.clearAnimation();//清除此ImageView身上的动画
im_dian.clearAnimation();//清除此ImageView身上的动画
break;
}
};
};

@Override
public void setView() {
setContentView(R.layout.activity_imitate_radar);

im_scan = (ImageView) findViewById(R.id.im_scan);
im_dian = (ImageView) findViewById(R.id.im_dian);
tv_lodingApk = (TextView) findViewById(R.id.tv_lodingApk);
ll_scanText = (LinearLayout) findViewById(R.id.ll_scanText);
pb_loding = (ProgressBar) findViewById(R.id.pb_loding);
tv_count = (TextView) findViewById(R.id.tv_count);

RotateAnimation animation = new RotateAnimation(0, 359, Animation.RELATIVE_TO_SELF,
0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setDuration(2000);
animation.setRepeatCount(0);
animation.setInterpolator(new LinearInterpolator());
animation.setFillEnabled(true);
animation.setFillAfter(true);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {

}

@Override
public void onAnimationEnd(Animation animation) {
im_scan.startAnimation(animation);
}

@Override
public void onAnimationRepeat(Animation animation) {

}
});
im_scan.startAnimation(animation);

AlphaAnimation animation2 = new AlphaAnimation(0.0f, 1.0f);
animation2.setDuration(3000);
animation2.setRepeatCount(Animation.INFINITE);
im_dian.startAnimation(animation2);

count = 0;

fillData();

}

@Override
public void initView() {
// TODO Auto-generated method stub

}

@Override
public void setListener() {
// TODO Auto-generated method stub

}

/**
* 初始化数据
*/
private void fillData() {
tv_lodingApk.setText("开始准备释放空闲CPU线程");
new Thread(){
public void run() {
PackageManager pm = getPackageManager();
pb_loding.setMax(177);
for (int i = 1; i <= 177; i++) {
Message msg = Message.obtain();
msg.what = SCAN_LODING;
handler.sendMessage(msg);
count =i;
pb_loding.setProgress(count);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Message msg = Message.obtain();
msg.what = FINSH_SCAN;
handler.sendMessage(msg);
};
}.start();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: