关注微信号:javalearns 随时随地学Java

或扫一扫

随时随地学Java

在Android中listview是最常用的控件之一,但是有时候我们会觉得千篇一律的listview看起来过于单调,于是就产生了listView动画,listview加载了动画会让用户体验更好,本期就分享一些listview动画以及实现方法,效果图


相信大家都熟悉Android的Tween动画,前四种动画就是Translate,Alpha,Rotate,Scale,最后一种Rotate3d则是用了一个3D旋转动画工具类Rotate3dAnimation,这个类的构造函数中接收一些3D旋转时所需用到的参数,比如旋转开始和结束的角度,旋转的中心点等。

LayoutAnimationController可以控制一组控件按照规定显示,ListView中的mListView.setLayoutAnimation相信大家都知道是用来干什么的了,接下来上代码:

private Button button, button2, button3, button4, button5;private ListView mListView;private Animation animation;private LayoutAnimationController controller;private String[] arry = { "一", "二", "三", "四", "五", "六" };private ArrayAdapter<String> adapter;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arry);mListView.setAdapter(adapter);}private void initView() {// TODO Auto-generated method stubmListView = (ListView) findViewById(R.id.list);button = (Button) findViewById(R.id.btn_tran);button.setOnClickListener(this);button2 = (Button) findViewById(R.id.btn_alpha);button2.setOnClickListener(this);button3 = (Button) findViewById(R.id.btn_rotate);button3.setOnClickListener(this);button4 = (Button) findViewById(R.id.btn_scale);button4.setOnClickListener(this);button5 = (Button) findViewById(R.id.rotate3d);button5.setOnClickListener(this);}@Overridepublic void onClick(View arg0) {// LayoutAnimationController.ORDER_NORMAL; 顺序显示// LayoutAnimationController.ORDER_REVERSE;反显示// LayoutAnimationController.ORDER_RANDOM; 随机显示switch (arg0.getId()) {case R.id.btn_tran:animation = new TranslateAnimation(-50f, 0f, 0f, 0f);animation.setDuration(500);//1f为延时controller = new LayoutAnimationController(animation, 1f);controller.setOrder(LayoutAnimationController.ORDER_NORMAL);mListView.setLayoutAnimation(controller);adapter.notifyDataSetInvalidated();break;case R.id.btn_alpha:animation = new AlphaAnimation(0f, 1f);animation.setDuration(500);controller = new LayoutAnimationController(animation, 1f);controller.setOrder(LayoutAnimationController.ORDER_NORMAL);mListView.setLayoutAnimation(controller);adapter.notifyDataSetInvalidated();break;case R.id.btn_rotate:animation = new RotateAnimation(0f, 360f);animation.setDuration(500);controller = new LayoutAnimationController(animation, 1f);controller.setOrder(LayoutAnimationController.ORDER_NORMAL);mListView.setLayoutAnimation(controller);adapter.notifyDataSetInvalidated();break;case R.id.btn_scale:animation = new ScaleAnimation(0.1f, 1.0f, 0.1f, 1.0f);animation.setDuration(500);controller = new LayoutAnimationController(animation, 1f);controller.setOrder(LayoutAnimationController.ORDER_NORMAL);mListView.setLayoutAnimation(controller);adapter.notifyDataSetInvalidated();break;case R.id.rotate3d:animation = new Rotate3dAnimation(0, 360, 200, 200, 0, true);animation.setDuration(1000);controller = new LayoutAnimationController(animation, 0.1f);controller.setOrder(LayoutAnimationController.ORDER_NORMAL);mListView.setLayoutAnimation(controller);adapter.notifyDataSetInvalidated();break;default:break;}}

这样大家可以随心所欲的编写自己喜欢的动画效果。

关注微信号:javalearns 随时随地学Java

或扫一扫

随时随地学Java

更多相关文章

  1. Android(安卓)Animation学习笔记
  2. Android(安卓)ListView动画实现方法
  3. Android(安卓)开发技巧总结
  4. Android(1.5及以上版本) 开机图片/文字/动画分析
  5. android的2种Animation模式配置
  6. Android的Activity跳转动画各种效果整理
  7. Android(安卓)仿淘宝广告条滚动
  8. Android中的动画详解系列【2】——飞舞的蝴蝶
  9. Android中ActionBar及Overflow的显示

随机推荐

  1. Android程序的入口
  2. Android初学者冷知识
  3. Android(安卓)ViewTreeObserver简介
  4. Android studio cmd命令行操作数据库文件
  5. Android Service Manager分析
  6. Android防注入研究
  7. android 在开发WebView时,去掉网页的标题
  8. ANDROID 背光调节
  9. Android解析ClassLoader(一)Java中的ClassL
  10. 解决在Android Studio 3.2找不到Android