1. 程式人生 > >android 輪播圖 簡單demo

android 輪播圖 簡單demo

github banner輪播圖框架:https://github.com/youth5201314/banner 可以設定輪播樣式、動畫、輪播和切換時間、位置、圖片載入框架等!
原來這位大神的輪播圖DEMO功能齊全,但我不需要複雜的功能,實現圖片輪播即可。
故簡化成下面圖片所示。
【android 輪播圖demo下載】

詳細:https://github.com/youth5201314/banner

app 依賴

 implementation 'com.youth.banner:banner:1.4.10'
 implementation "com.github.bumptech.glide:glide:3.7.0"

清單檔案增加許可權

 <uses-permission android:name="android.permission.INTERNET" />
 <!-- if you want to load images from a file OR from the internet -->
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

activity_main 頁面檔案

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.youth.banner.Banner
        android:layout_width="match_parent"
        android:layout_height="600px"
        android:background="@color/colorPrimary"
        android:id="@+id/banner">
    </com.youth.banner.Banner>
</LinearLayout>

MainActivity檔案

package com.example.administrator.banner;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.youth.banner.Banner;
import com.youth.banner.listener.OnBannerListener;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class MainActivity extends AppCompatActivity implements OnBannerListener {

    Banner banner;
    public static List<?> images=new ArrayList<>();
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        banner=(Banner)findViewById(R.id.banner);

        String[] urls = getResources().getStringArray(R.array.url);
        List list = Arrays.asList(urls);
        images = new ArrayList(list);

        //設定自動輪播,預設為true
        banner.isAutoPlay(true);
        //設定輪播時間
        banner.setDelayTime(1500);
        banner.setImages(images)
                .setImageLoader(new GlideImageLoader())
                .setOnBannerListener(this)
                .start();

    }

    @Override
    public void OnBannerClick(int position) {
        Toast.makeText(getApplicationContext(),"你點選了:"+position,Toast.LENGTH_SHORT).show();
    }
}

GlideImageLoader檔案

package com.example.administrator.banner;

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) {
        //具體方法內容自己去選擇,次方法是為了減少banner過多的依賴第三方包,所以將這個許可權開放給使用者去選擇
        Glide.with(context.getApplicationContext())
                .load(path)
                .into(imageView);
    }
}

更多可設定的方法和屬性請參考github
【android 輪播圖demo下載】
如需幫助請留言!