雷达扫描动画
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(); } }
相关文章推荐
- UINavigationController + UIScrollView组合,视图尺寸的设置探秘(二)
- jvm垃圾收集器与内存分配策略
- Echarts Map 值域为小数的原因
- 大写标识符
- Linux 中 CURL常用命令详解
- netfilter之NAT代码解读
- 你不知道的故事——被藏起来的婚鞋
- 你不知道的故事——被藏起来的婚鞋
- SOE传入参数过长出错,
- 为iPhone6设计自适应布局(一)
- 文章标题
- CSS3-2D转换
- linux下面的挂载点讲解
- 工具推荐
- 34一个美丽的生活窍门
- Ralink RT5350:添加自定义GPIO应用程序
- mysql function 生成随机字符串
- mysql 分析查找执行效率慢的SQL语句
- poj 3414
- Android handler消息队列机制