[Xamarin] Android 製作滑動含手勢輪播廣告

2016-07-14

主要是做出滑動的橫幅效果像是這樣,這邊是用一個github 上面的套件,不過他官方範例有點雜,這邊我就做個小整理
dsada

1. 首先,當然我們不是全部都自己寫,我們主要是用一個網路上的open source ( https://github.com/Cheesebaron/ViewPagerIndicator ) ,在這邊感謝各位Open source 的大大提供套件,之後編譯你會拿到 DK.Ostebaronen.Droid.ViewPagerIndicator.v4.dll 並且把他引入。

2.我們要下載一些xamarin 上的 components
Xamarin Android Support Library v4Android Support Library v7 AppCompat ,引入第一步的 DK.Ostebaronen.Droid.ViewPagerIndicator.v4.dll  跟這兩個 components 後 references 會長這樣
image3

3.Main.xaml ,其中放入  android.support.v4.view.ViewPager 還有  dk.ostebaronen.droid.viewpagerindicator.CirclePageIndicator 則是拿來切換圖片的

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="200dp" />
    <dk.ostebaronen.droid.viewpagerindicator.CirclePageIndicator
        android:id="@+id/indicator"
        android:padding="10dp"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent" />
</LinearLayout>

4. MainActivity.cs 其中 加入圖片的方法就變得很簡單

//加入圖片
ImagesList = new List<int>();
ImagesList.Add(Resource.Drawable.sh095);
ImagesList.Add(Resource.Drawable.sh096);
ImagesList.Add(Resource.Drawable.sh097);
ImagesList.Add(Resource.Drawable.sh098);
 
_adapter = new FragStateSupport(SupportFragmentManager, ImagesList);
 
//將UI上的圖片顯示放入資料
_pager = FindViewById<ViewPager>(Resource.Id.pager);
_pager.Adapter = _adapter;

讓他自動輪播:
//每一秒讓他輪播如果撥放到最後拉回到第一張
private void _Timer_Elapsed(object sender, ElapsedEventArgs e)
{
    CurrentFlag = _pager.CurrentItem;
   
    CurrentFlag++;
    CurrentFlag = CurrentFlag % 4;
    this.RunOnUiThread(() => _pager.SetCurrentItem(CurrentFlag, true));
}

這邊我提供source code :
https://github.com/donma/Xamarin.TestSliderAutoPlay


當麻許的超技八 2014 | Donma Hsu Design.