AdapterViewFlipper实现跑马灯横幅广告滚动效果
先看效果圖:
?
AdapterViewFlipper繼承了AdapterViewAnimator,可以通過showPrevious()和showNext()方法控制組件顯示上一個、下一個組件,可以設置切換view時候的動畫,而且使用起來非常簡潔。
XML屬性:
android:animateFirstView:設置顯示該組件的第一個View時是否使用動畫
android:inAnimation:設置組件顯示時使用的動畫
android:loopViews:設置循環到最后一個組件后是否自動“轉頭”到第一個組件
android:outAnimation:設置組件隱藏時使用的動畫
android:autoStart:設置顯示該組件是否是自動播放
android:flipInterval:設置自動播放的時間間隔
以上屬性同樣也可以通過代碼設置,這里就不做一一介紹了。
AdapterViewFlipper可以設置一個Adapter,去操作他的數據集合;還有一點需要注意的是AdapterViewFlipper只支持屬性動畫-ObjectAnimator,不可以設置別的方式的動畫,不然會拋異常,如果你是寫在XML里面,需要將文件放在animator下面!
animator xml:
<?xml version="1.0" encoding="utf-8"?> <!--首頁viewflipper進入動畫--> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:interpolator="@android:anim/accelerate_decelerate_interpolator"><propertyValuesHolderandroid:propertyName="y"android:valueFrom="450"android:valueTo="0"android:valueType="floatType"/><propertyValuesHolderandroid:propertyName="alpha"android:valueFrom="0"android:valueTo="1"android:valueType="floatType"/> </objectAnimator> <?xml version="1.0" encoding="utf-8"?> <!--首頁viewflipper退出動畫--> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:interpolator="@android:anim/accelerate_decelerate_interpolator"><propertyValuesHolderandroid:propertyName="y"android:valueFrom="0"android:valueTo="-450"android:valueType="floatType"/><propertyValuesHolderandroid:propertyName="alpha"android:valueFrom="1"android:valueTo="0"android:valueType="floatType"/> </objectAnimator>這是兩個同時移動和漸變的組合動畫,objectAnimator設置的組合動畫只能同時進行。
注意:2019-06-24更新!如下...
上述通過xml的方式設置組合動畫會在android6.0以下的手機出現異常:unknown animator name: propertyvaluesholder
低版本的手機無法識別propertyvaluesholder標簽?
所以保險起見就用代碼設置動畫:
//設置進入動畫 PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("translationY",450,0); PropertyValuesHolder p2 = PropertyValuesHolder.ofFloat("alpha",0,1); ObjectAnimator anim_in = ObjectAnimator.ofPropertyValuesHolder(vf_rewardNow,p1,p2).setDuration(1000); anim_in.setInterpolator(new AccelerateDecelerateInterpolator()); adapterViewFlipper.setInAnimation(anim_in);//設置退出動畫 PropertyValuesHolder p3 = PropertyValuesHolder.ofFloat("translationY",0,-450); PropertyValuesHolder p4 = PropertyValuesHolder.ofFloat("alpha",1,0); ObjectAnimator anim_out = ObjectAnimator.ofPropertyValuesHolder(vf_rewardNow,p3,p4).setDuration(1000); anim_out.setInterpolator(new AccelerateDecelerateInterpolator()); adapterViewFlipper.setOutAnimation(anim_out);源碼我就不更新了,就是發現這個問題更新一下博客。
源碼Demo下載
總結
以上是生活随笔為你收集整理的AdapterViewFlipper实现跑马灯横幅广告滚动效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pygame鼠标进行拖拽移动图片、缩放、
- 下一篇: 我的大学(一)-----回顾与反思