轮播广告的实现

开源控件AndroidImageSlider

GitHub地址:https://github.com/daimajia/AndroidImageSlider

 

AndroidImageSlider是一个非常酷炫的轮播广告控件,主要包括了SliderLayoutSliderViewPageIndicator三个主要部分,其中可以设置PageIndicator的样式(共有6种),还可以设置SliderView的样式(TextSliderViewDefaultSliderView,或者自定义),并且能够设置SliderView的转换效果和转换动画;有两个监听器OnSliderClickListenerOnPageChangeListener

使用步骤:

①加入依赖

dependencies {

    compile "com.android.support:support-v4:+"

    compile 'com.squareup.picasso:picasso:2.3.2'

    compile 'com.nineoldandroids:library:2.4.0'

    compile 'com.daimajia.slider:library:1.1.5@aar'

}

②加入权限

<uses-permission android:name="android.permission.INTERNET" /> 

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

③在布局文件中加入SliderLayout

<com.daimajia.slider.library.SliderLayout

        android:id="@+id/slider"

        android:layout_width="match_parent"

        android:layout_height="200dp"/>

④得到SliderLayout的实例

SliderLayout sliderShow = (SliderLayout) findViewById(R.id.slider);

⑤重写onDestroy方法

@Overrideprotected void onStop() {

    sliderShow.stopAutoCycle();

    super.onStop();

}

关闭sliderLayout,防止内存泄漏。

⑥利用网络将所有的图片都请求到,包装为Banner Bean类,具体会在OKHttp中实现,以后会具体描述

public class Banner extends BaseBean {
    private  String name;
    private  String imgUrl;
    private  String description;

    ......
}

 

⑦将所有的SliderView加入SliderLayout

if(banners != null){
    for (Banner ban: banners){
        TextSliderView textSliderView = new TextSliderView(this.getActivity());
        textSliderView
                .description(ban.getName())
                .image(ban.getImgUrl());

        textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
            @Override
            public void onSliderClick(BaseSliderView slider) {
                Toast.makeText(HomeFragment.this.getActivity()

                     "slider 1 clicked"Toast.LENGTH_LONG)

                    .show();
            }
        });

        sliderShow.addSlider(textSliderView);
    }
}

 

⑧为SliderLayout添加监听器

sliderShow.addOnPageChangeListener(new ViewPagerEx.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        //  Log.d("Slider", "onPageScrolled");
    }
    @Override
    public void onPageSelected(int position) {
        // Log.d("Slider", "onPageSelected");
    }
    @Override
    public void onPageScrollStateChanged(int state) {
        // Log.d("Slider", "onPageScrollStateChanged");
    }
});

 

⑨也可以为SliderLayout添加SliderIndicator

<com.daimajia.slider.library.Indicators.PagerIndicator

        android:id="@+id/custom_indicator"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:gravity="center"/>

slider.setCustomIndicator((PagerIndicator) findViewById(R.id.custom_indicator));

⑩设置转换效果

setPresetTransformer(Transformer ts)

动画效果

slider.setCustomAnimation(new DescriptionAnimation());

到目前为止,一个高大上的广告轮播组件就做好了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值