最核心的类是SliderLayout,他继承自相对布局,包含了可以左右滑动的SliderView,以及页面指示器PagerIndicator。这两部分都可以自定义。

AndroidImageSlider常规用法:使用TextSliderView+自定义PagerIndicator。

用法

1. 添加依赖

    compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.slider:library:1.1.5@aar'

2. 布局文件中放置SliderLayout以及PagerIndicator

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"> <com.daimajia.slider.library.SliderLayout
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="200dp"
/>

   //指示器的类型
<com.daimajia.slider.library.Indicators.PagerIndicator
android:id="@+id/custom_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
custom:selected_color="#FF5500"
custom:unselected_color="#55333333"
custom:shape="rect"
custom:selected_padding_left="2dp"
custom:selected_padding_right="2dp"
custom:unselected_padding_left="2dp"
custom:unselected_padding_right="2dp"
custom:selected_width="16dp"
custom:selected_height="3dp"
custom:unselected_width="16dp"
custom:unselected_height="3dp"
android:layout_gravity="center"
/> </LinearLayout>

3.代码实现:

实例化若干个TextSliderView,对其设置好图片,文字以及相应的监听事件,最后添加到SliderLayout中。

可以对SliderLayout进行一些设置,如设置指示器类型,动画,延时时间等,

最后别忘了在布局摧毁的时候,调用sliderLayout.stopAutoCycle();方法停止广告的轮播,以释放资源。

package com.bignerdranch.android.cainiaoshop.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast; import com.bignerdranch.android.cainiaoshop.R;
import com.daimajia.slider.library.Animations.DescriptionAnimation;
import com.daimajia.slider.library.Indicators.PagerIndicator;
import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.TextSliderView;
import com.daimajia.slider.library.Tricks.ViewPagerEx; import static android.content.ContentValues.TAG; /**
* Created by Leo on 2017/7/29.
*/ public class HomeFragment extends Fragment{ private SliderLayout mSliderLayout; //指示器
private PagerIndicator mIndicator; @Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_home,container,false); mSliderLayout = (SliderLayout)view.findViewById(R.id.slider); //实例化指示器
mIndicator = (PagerIndicator) view.findViewById(R.id.custom_indicator); //初始化数据
initSlider(); return view;
} private void initSlider(){ //实例化一个新的TextSliderView,并为其设置好图片,文字,点击事件。
TextSliderView textSliderView = new TextSliderView(this.getActivity());
textSliderView.image("http://m.360buyimg.com/mobilecms/s300x98_jfs/t2416/102/20949846/13425/a3027ebc/55e6d1b9Ne6fd6d8f.jpg");
textSliderView.description("新品推荐");
textSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView baseSliderView) { Toast.makeText(HomeFragment.this.getActivity(),"新品推荐",Toast.LENGTH_LONG).show(); }
}); TextSliderView textSliderView2 = new TextSliderView(this.getActivity());
textSliderView2.image("http://m.360buyimg.com/mobilecms/s300x98_jfs/t1507/64/486775407/55927/d72d78cb/558d2fbaNb3c2f349.jpg");
textSliderView2.description("时尚男装"); textSliderView2.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView baseSliderView) { Toast.makeText(HomeFragment.this.getActivity(),"时尚男装",Toast.LENGTH_LONG).show(); }
}); TextSliderView textSliderView3 = new TextSliderView(this.getActivity());
textSliderView3.image("http://m.360buyimg.com/mobilecms/s300x98_jfs/t1363/77/1381395719/60705/ce91ad5c/55dd271aN49efd216.jpg");
textSliderView3.description("家电秒杀"); textSliderView3.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView baseSliderView) { Toast.makeText(HomeFragment.this.getActivity(),"家电秒杀",Toast.LENGTH_LONG).show(); }
}); //将TextSliderView添加到SliderLayout中
mSliderLayout.addSlider(textSliderView);
mSliderLayout.addSlider(textSliderView2);
mSliderLayout.addSlider(textSliderView3); //设置指示器类型
mSliderLayout.setCustomIndicator(mIndicator);
//动画
mSliderLayout.setCustomAnimation(new DescriptionAnimation());
//设置转场效果
mSliderLayout.setPresetTransformer(SliderLayout.Transformer.RotateUp);
//设置时间
mSliderLayout.setDuration(3000); //设置SliderLayout的监听事件
mSliderLayout.addOnPageChangeListener(new ViewPagerEx.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.d(TAG, "onPageScrolled: ");
} @Override
public void onPageSelected(int position) {
Log.d(TAG, "onPageSelected: ");
} @Override
public void onPageScrollStateChanged(int state) {
Log.d(TAG, "onPageScrollStateChanged: ");
}
}); }
}

最新文章

  1. 重复加载同一个jqgrid
  2. SpringHttpInvoker解析1-使用示例
  3. PostgreSQL 中定义自己需要的数据类型
  4. 查询SQL 对象及存储过程
  5. Android核心分析之二十一Android应用框架之AndroidApplication
  6. Velocity常用方法
  7. .Hibernate一对一映射与组件映射
  8. 运营总监招聘-e袋洗招聘-拉勾网
  9. 解决windows下Eclipse连接远程Hadoop报错
  10. Pos终端中的主密钥、工作密钥、pin密钥、mac密钥
  11. &lt;java&gt;枚举的简单介绍
  12. 【由浅至深】redis 实现发布订阅的几种方式
  13. mysql-xtrabackup备份sh: xtrabackup_56: command not found与error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory
  14. JavaScript(类型转换、条件语句、循环、函数)
  15. 物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
  16. p3792 由乃与大母神原型和偶像崇拜(思维+线段树)
  17. How_Require_Extensions_Work
  18. Maven 自动下载源码和文档
  19. 利用koa打造jsonp API
  20. 000 Html基本标签与案例

热门文章

  1. 学习spring第一天
  2. 0.3W微功率放大器
  3. IdentityServer4之Token令牌获取流程分析
  4. Servlet&amp;JSP复习笔记 01
  5. linkage disequilibrium|linkage equilibrium
  6. AUTOSAR 架构
  7. Linux_切换,创建,和删除目录
  8. servlet打包成war
  9. linux上部署jenkins
  10. PMP备考经验总结-1906