Android---Bannerd的基本使用

Bannerd的基本使用

Banner是什么?

一个可以替代ViewPa的控件

为什么使用Banner?

因为现在绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页, 所以要实现循环还得需要自己去添加。
接下时如何使用Banner?
先看看效果图

①导入依赖
compile 'com.youth.banner:banner:1.4.9' 这是Banner的依赖
compile 'com.github.bumptech.glide:glide:3.5.2' 这是Gilde的依赖
compile 'com.squareup.okio:okio:1.5.0'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'   这3个时okhttp的依赖包
compile 'com.google.code.gson:gson:2.8.2'     这是Gson的依赖包
因为在Banner使用中会用到Gilde(图片加载框架)
②导入utils包(封装好的okhttp3的网络请求包,在下面的源代码中有,可以自己下载)
③Mainactivity.java中代码
package com.dabin.www.banner;

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

import com.youth.banner.Banner;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import app.GlideImageLoader;
import bean.NewBase;
import okhttp3.Call;
import utils.GsonObjectCallback;
import utils.NetWorkUtils;
import utils.OkHttp3Utils;

public class MainActivity extends AppCompatActivity {

    List mlist=new ArrayList();
    String mpath = "http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage";
    private Banner mbanner;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mbanner = (Banner) findViewById(R.id.mybanner);


        boolean netWorkAvailable = NetWorkUtils.isNetWorkAvailable(this);
        if (!netWorkAvailable) {
            Toast.makeText(MainActivity.this, "联网:" + netWorkAvailable, Toast.LENGTH_SHORT).show();
        }
        getData();
    }

    //get的请求
    private void getData() {
        OkHttp3Utils.getInstance().doGet(mpath, new GsonObjectCallback<NewBase>() {


            @Override
            public void onUi(NewBase newBase) {

                for(int i=0; i<newBase.getData().getAd1().size();i++){
                    String ad1s = newBase.getData().getAd1().get(i).getImage();
                    mlist.add(ad1s);
                }
                //设置图片加载器
                //mbanner.setImageLoader(new GlideImageLoader());
                mbanner.setImageLoader(new GlideImageLoader());
                mbanner.setImages(mlist);
                mbanner.start();
            }

            @Override
            public void onFailed(Call call, IOException e) {

            }
        });
    }
}
④ 新建一个MyAppde继承Application
package app;

import android.app.Application;


public class MyApp extends Application{
    public static MyApp mInstance;
    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;

    }
    public static MyApp getInstance() {
        return mInstance;
    }
}
⑤新建一个类继承ImageLoader
package app;

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

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

/**
 * Created by Dabin on 2017/10/13.
 */

public class GlideImageLoader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context).load(path).into(imageView);
    }
}
⑥解析json 使用gsonformat 解析
⑦清单中权限和MyApp的引用
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dabin.www.banner">
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />

    <application
        android:name="app.MyApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
就可以实现效果了
源码地址







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值