在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;}}

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


项目源码


更多相关文章

  1. Android学习(2)EditView属性
  2. Android(安卓)Animation学习笔记
  3. Android的Activity跳转动画各种效果整理
  4. android ListView没有数据时信息显示
  5. android:screenOrientation属性
  6. Android开发学习笔记:TextView的属性详解
  7. Android(安卓)通过百度地图SDK 实现地图显示和定位(一)
  8. android surfaceflinger研究----Surface机制
  9. Android软键盘的隐藏显示研究

随机推荐

  1. 我就是要单打独斗
  2. 我们没有退路,只有不断向前
  3. 不断持续做,未来就已经到来
  4. 全力以赴让人喜乐
  5. 保持忠贞是不容易的,需要持续付出努力
  6. 必会10大软件测试软件工具,不知道的快收藏
  7. 现在发觉,我要做的是一件产品
  8. 坚持不是苦差事,而是一种享受
  9. 生活不复杂,简简单单就好
  10. 人生做减法,生活才会有更多的自由和平安