ViewFlipper實(shí)現(xiàn)文字輪播效果
ViewFlipper實(shí)現(xiàn)文字輪播(仿淘寶頭條垂直滾動(dòng)廣告),供大家參考,具體內(nèi)容如下
廣告條目可以單獨(dú)寫成布局文件,然后在布局文件或者代碼中添加到總布局中
從源碼可以看出,其實(shí)ViewFlipper間接的繼承了FrameLayout,也可以說ViewFlipper其實(shí)就是個(gè)FrameLayout,只不過在內(nèi)部封裝了動(dòng)畫實(shí)現(xiàn)和Handler實(shí)現(xiàn)一個(gè)循環(huán)而已。
布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <!--android:autoStart:設(shè)置自動(dòng)加載下一個(gè)View--> <!--android:flipInterval:設(shè)置View之間切換的時(shí)間間隔--> <!--android:inAnimation:設(shè)置切換View的進(jìn)入動(dòng)畫--> <!--android:outAnimation:設(shè)置切換View的退出動(dòng)畫--> <ViewFlipper android:id="@+id/view_flipper" android:layout_width="match_parent" android:layout_height="100dp" android:layout_centerInParent="true" android:autoStart="true" android:background="#808080" android:flipInterval="2000" android:inAnimation="@anim/slide_in_down" android:outAnimation="@anim/slide_out_up"> <TextView android:id="@+id/first" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="白日依山盡" android:textColor="#FF00FF" android:textSize="50sp" /> <TextView android:id="@+id/second" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="黃河入海流" android:textColor="#FF00FF" android:textSize="50sp" /> <TextView android:id="@+id/third" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="欲窮千里目" android:textColor="#FF00FF" android:textSize="50sp" /> <TextView android:id="@+id/forth" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="更上一層樓" android:textColor="#FF00FF" android:textSize="50sp" /> </ViewFlipper> </RelativeLayout>
這里介紹ViewFlipper用到的屬性,這些屬性其實(shí)都可以使用代碼實(shí)現(xiàn),只不過這里為了代碼看上去美觀,才放在布局里的
- android:autoStart : 設(shè)置自動(dòng)加載下一個(gè)View
- android:flipInterval : 設(shè)置View之間切換的時(shí)間間隔
- android:inAnimation : 設(shè)置切換View的進(jìn)入動(dòng)畫
- android:outAnimation : 設(shè)置切換View的退出動(dòng)畫
下面是ViewFlipper常用的方法介紹,除了可以設(shè)置上面的屬性之外,還提供了其他方法
- isFlipping : 判斷View切換是否正在進(jìn)行
- setFlipInterval : 設(shè)置View之間切換的時(shí)間間隔
- startFlipping : 開始View的切換,而且默認(rèn)會(huì)循環(huán)進(jìn)行
- stopFlippiing : 停止View的切換
- setOutAnimation : 設(shè)置切換View的退出動(dòng)畫
- setInAnimation : 設(shè)置切換View的進(jìn)入動(dòng)畫
- showNext : 顯示ViewFlipper里的下一個(gè)View
- showPrevious : 顯示ViewFlipper里的上一個(gè)View
這里還涉及到兩個(gè)動(dòng)畫其實(shí)就是一個(gè)平移的動(dòng)畫,它們都保存在anim文件夾中
slide_in_down.xml 進(jìn)入動(dòng)畫
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromYDelta="100%" android:toYDelta="0"/> </set>
slide_out_up.xml 退出動(dòng)畫
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromYDelta="0" android:toYDelta="-100%"/> </set>
MainActivity
package com.nrf.mydemo; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
運(yùn)行之后,效果圖
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android使用http協(xié)議與服務(wù)器通信的實(shí)例
本篇文章主要介紹了Android使用http協(xié)議與服務(wù)器通信,Android與服務(wù)器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post兩種方式。感興趣的小伙伴們可以參考一下。2016-12-12TextVie獲取顯示字符串的寬度之Android開發(fā)
在項(xiàng)目開展過程中遇到問題要判斷textview是否需換行,要解決此問題首先判斷textview要顯示的字符串的寬度是否超過我設(shè)定的寬度,若超過則執(zhí)行換行,需要的朋友可以參考下2015-07-07Android使用原生組件WebView加載網(wǎng)頁和數(shù)據(jù)的方法
這篇文章主要介紹了Android使用原生組件WebView加載網(wǎng)頁和數(shù)據(jù)的方法的相關(guān)資料,需要的朋友可以參考下2016-09-09Android中的Handler與多線程應(yīng)用實(shí)例
這篇文章主要介紹了Android中的Handler與多線程應(yīng)用實(shí)例,本文首先解釋一下handler是用來干嘛的,然后通過例子介紹其在多線程中的應(yīng)用,需要的朋友可以參考下2015-03-03Android編程實(shí)現(xiàn)啟動(dòng)另外的APP及傳遞參數(shù)的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)啟動(dòng)另外的APP及傳遞參數(shù)的方法,涉及Activity啟動(dòng)及Intent設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2017-05-05Android UI設(shè)計(jì)系列之自定義Dialog實(shí)現(xiàn)各種風(fēng)格的對(duì)話框效果(7)
這篇文章主要介紹了Android UI設(shè)計(jì)系列之自定義Dialog實(shí)現(xiàn)各種風(fēng)格的對(duì)話框效果,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06Android ListView 單條刷新方法實(shí)踐及原理解析
這篇文章主要介紹了Android ListView 單條刷新方法實(shí)踐及原理解析的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Android miniTwitter登錄界面開發(fā)實(shí)例
這篇文章主要為大家詳細(xì)介紹了Android miniTwitter登錄界面開發(fā)實(shí)例,感興趣的小伙伴們可以參考一下2016-04-04