Android ListView動畫實現方法

來源:互聯網
上載者:User

標籤: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動畫實現方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.