標籤:imp array generated 接下來 default cal tween 自己 rand
在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;}}
這樣大家能夠隨心所欲的編寫自己喜歡的動畫效果
項目原始碼
Android ListView動畫實現方法