1. 程式人生 > >Android 輪播圖Banner的簡單實現

Android 輪播圖Banner的簡單實現

輪播圖已經出來很長時間了,我也看了很多部落格,看了很多的人程式碼,也有自己寫原生的,也有用第三方框架的,學習安卓有一段時間了,決定寫一寫部落格來記錄自己的安卓學習生涯,不管以前有沒有古人寫過,反正我是這個來者哈哈哈;廢話不多說了,進入正文吧。

Banner的簡單使用步驟:

第一步 新增依賴:

compile 'com.youth.banner:banner:1.4.9'

第二步 網路許可權:

//如果你的圖片源是從網路來的,那你就添加個網路許可權。
 <uses-permission android:name="android.permission.INTERNET"
/> //要記得讀取許可權也不可少哦 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

第三步 在佈局檔案中新增banner元件:

//當然寬高可以自己設定。這裡只是舉個栗子
 <com.youth.banner.Banner
        android:id="@+id/main_banner"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
/>

第四步 重寫圖片載入器:




//我個人習慣用Glide,所以用Glide寫的,當然大家如果喜歡其他的可以用其他的,我在這裡不做任何侷限

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.youth.banner.loader.ImageLoader;

public class GlideImageLoader extends ImageLoader {


    @Override
    public
void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } @Override public ImageView createImageView(Context context) { ImageView imageView = new ImageView(context); return imageView; } }

第五步 使用Banner:

該有的配置完了,就該真正的使用啦!等了很久了吧。

public class MainActivity extends Activity {

    Banner banner;//banner元件
    List mlist;//圖片資源
    List<String> mlist1;//輪播標題

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化兩個集合,圖片資源可以是本地,也可以是網路的url
        mlist = new ArrayList<>();
        mlist.add(R.drawable.bingxue);
        mlist.add(R.drawable.fpcard);
        mlist.add(R.drawable.gggg);
        mlist.add(R.drawable.peng);
        mlist1 = new ArrayList<>();
        mlist1.add("123231");
        mlist1.add("123231");
        mlist1.add("123231");
        mlist1.add("123231");

        banner = findViewById(R.id.main_banner);

        banner.setImageLoader(new GlideImageLoader());   //設定圖片載入器
        banner.setImages(mlist);//設定圖片源
        banner.setBannerTitles(mlist1);//設定標題源
        banner.setDelayTime(1500);//設定輪播事件,單位毫秒
        banner.setBannerAnimation(Transformer.Stack);//設定輪播動畫,動畫種類很多,有興趣的去試試吧,我在這裡用的是預設

/**
 *  輪播圖的點選事件
*/
        banner.setOnBannerListener(new OnBannerListener() {
            @Override
            public void OnBannerClick(int position) {
                Toast.makeText(MainActivity.this, "xiaoguo" + position, Toast.LENGTH_SHORT).show();
            }
        });
        banner.setIndicatorGravity(BannerConfig.CENTER);//設定指示器的位置

        banner.start();//開始輪播,一定要呼叫此方法。

    }

第六步 為了增強使用者的體驗:

  @Override
    protected void onResume() {
        super.onResume();
        banner.start();
    }

    @Override
    protected void onStop() {
        super.onStop();
        banner.stopAutoPlay();
    }

Banner的簡單實現就說到這裡,很簡單,但是很強大,也很實用,可以滿足一般的輪播需求。謝謝!