Skip to content

Commit

Permalink
1.4.9
Browse files Browse the repository at this point in the history
youth5201314 committed Feb 20, 2017
1 parent 99d831f commit 0c438b8
Showing 13 changed files with 131 additions and 75 deletions.
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Android图片轮播控件 *如果对你有帮助请star哦!*
[![Apache 2.0 License](https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat)](http://www.apache.org/licenses/LICENSE-2.0.html)

![1.4版本更新,修改了图片加载方式](https://raw.githubusercontent.com/youth5201314/banner/master/image/version1.4.png)

<br>
现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页,
所以要实现循环还得需要自己去动手,我就把项目中的控件剔了出来,希望大家觉得有用。目前框架可以进行不同样式、不同动画设置,
@@ -74,7 +72,8 @@
|setDelayTime(int time)| 设置轮播图片间隔时间(单位毫秒,默认为2000)|无
|setImages(Object[]/List<?> imagesUrl)| 设置轮播图片(所有设置参数方法都放在此方法之前执行)|1.4后去掉数组传参
|setImages(Object[]/List<?> imagesUrl,OnLoadImageListener listener)| 设置轮播图片,并且自定义图片加载方式|1.3.3结束
|setOnBannerClickListener(this)|设置点击事件,下标是从1开始|无
|setOnBannerClickListener(this)|设置点击事件,下标是从1开始|无(1.4.9以后废弃了)
|setOnBannerListener(this)|设置点击事件,下标是从0开始|1.4.9以后
|setOnLoadImageListener(this)|设置图片加载事件,可以自定义图片加载方式|1.3.3结束
|setImageLoader(Object implements ImageLoader)|设置图片加载器|1.4开始
|setOnPageChangeListener(this)|设置viewpager的滑动监听|无
@@ -108,9 +107,7 @@
Gradle
```groovy
dependencies{
compile 'com.youth.banner:banner:1.4.8' //最新版本
or
compile 'com.youth.banner:banner:1.3.3' //旧版本,旧版本用法下面有跳转链接
compile 'com.youth.banner:banner:1.4.9' //最新版本
}
```
或者引用本地lib
@@ -258,7 +255,7 @@ protected void onStop() {

<a href="https://dl.bintray.com/youth5201314/maven/com/youth/banner/banner/" target="_blank"> [历史版本资源地址]

<a href="http://youth5201314.github.io/2016/04/13/Banner%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6-Android%E8%BD%AE%E6%92%AD%E6%8E%A7%E4%BB%B6/" target="_blank"> [1.3.3以前旧版本文档地址]
<a href="http://youth5201314.github.io/2016/04/13/Banner%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6-Android%E8%BD%AE%E6%92%AD%E6%8E%A7%E4%BB%B6/" target="_blank"> [1.3.3以前旧版本使用文档地址]

## 常见问题

@@ -305,6 +302,12 @@ protected void onStop() {

## 更新说明

#### v1.4.9
banner 优化更新
* 废弃以前的点击事件(当然还是可以使用以前的方法),增加新的setOnBannerListener点击事件,下标从0开始
* 解决update刷新轮播图后,会造成多次调用OnPageChangeListener的情况
* 改变布局文件变量名,减少和工程冲突

#### v1.4.8
banner 优化更新
* 修改点击事件返回下标偶尔越界问题
16 changes: 8 additions & 8 deletions app/app.iml
Original file line number Diff line number Diff line change
@@ -65,14 +65,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
@@ -81,6 +73,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
9 changes: 5 additions & 4 deletions app/src/main/java/com/test/banner/App.java
Original file line number Diff line number Diff line change
@@ -15,13 +15,13 @@
public class App extends Application {
public static List<?> images=new ArrayList<>();
public static List<String> titles=new ArrayList<>();
public static int H;
public static int H,W;
public static App app;
@Override
public void onCreate() {
super.onCreate();
app=this;
H=getScreenH(this);
getScreen(this);
Fresco.initialize(this);
Recovery.getInstance()
.debug(true)
@@ -36,8 +36,9 @@ public void onCreate() {
List list1 = Arrays.asList(tips);
titles= new ArrayList(list1);
}
public int getScreenH(Context aty) {
public void getScreen(Context aty) {
DisplayMetrics dm = aty.getResources().getDisplayMetrics();
return dm.heightPixels;
H=dm.heightPixels;
W=dm.widthPixels;
}
}
34 changes: 34 additions & 0 deletions app/src/main/java/com/test/banner/GallyPageTransformer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.test.banner;

import android.support.v4.view.ViewPager;
import android.view.View;

/**
* 自定义动画效果
* 调用 banner.setPageTransformer()方法设置
*/

public class GallyPageTransformer implements ViewPager.PageTransformer {
private static final float min_scale = 0.85f;

@Override
public void transformPage(View page, float position) {
float scaleFactor = Math.max(min_scale, 1 - Math.abs(position));
float rotate = 20 * Math.abs(position);
if (position < -1) {

} else if (position < 0) {
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
page.setRotationY(rotate);
} else if (position >= 0 && position < 1) {
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
page.setRotationY(-rotate);
} else if (position >= 1) {
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
page.setRotationY(-rotate);
}
}
}
7 changes: 5 additions & 2 deletions app/src/main/java/com/test/banner/MainActivity.java
Original file line number Diff line number Diff line change
@@ -22,15 +22,17 @@
import com.test.banner.demo.IndicatorPositionActivity;
import com.test.banner.loader.GlideImageLoader;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerClickListener;
import com.youth.banner.listener.OnBannerListener;

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


public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener, AdapterView.OnItemClickListener, OnBannerClickListener {
public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener, AdapterView.OnItemClickListener, OnBannerListener {
static final int REFRESH_COMPLETE = 0X1112;
SwipeRefreshLayout mSwipeLayout;
ListView listView;
@@ -60,14 +62,15 @@ protected void onCreate(Bundle savedInstanceState) {
banner = (Banner) header.findViewById(R.id.banner);
banner.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,App.H/4));
listView.addHeaderView(banner);

String[] data=getResources().getStringArray(R.array.demo_list);
listView.setAdapter(new SampleAdapter(this,data));
listView.setOnItemClickListener(this);

//简单使用
banner.setImages(App.images)
.setImageLoader(new GlideImageLoader())
.setOnBannerClickListener(this)
.setOnBannerListener(this)
.start();

}
Original file line number Diff line number Diff line change
@@ -20,6 +20,7 @@
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;
import com.youth.banner.listener.OnBannerClickListener;
import com.youth.banner.listener.OnBannerListener;
import com.youth.banner.transformer.AccordionTransformer;
import com.youth.banner.transformer.BackgroundToForegroundTransformer;
import com.youth.banner.transformer.CubeInTransformer;
@@ -42,7 +43,7 @@
import java.util.Arrays;
import java.util.List;

public class BannerAnimationActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, OnBannerClickListener {
public class BannerAnimationActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, OnBannerListener {
Banner banner;
List<Class<? extends ViewPager.PageTransformer>> transformers=new ArrayList<>();
public void initData(){
@@ -78,7 +79,7 @@ protected void onCreate(Bundle savedInstanceState) {

banner.setImages(App.images)
.setImageLoader(new GlideImageLoader())
.setOnBannerClickListener(this)
.setOnBannerListener(this)
.start();

}
@@ -90,7 +91,6 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id)

@Override
public void OnBannerClick(int position) {
Log.e("--",position+"");
Toast.makeText(getApplicationContext(),"你点击了:"+position,Toast.LENGTH_SHORT).show();
}
}
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@

import android.content.Context;
import android.net.Uri;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
@@ -19,4 +20,6 @@ public void displayImage(Context context, Object path, ImageView imageView) {
.crossFade()
.into(imageView);
}


}
4 changes: 2 additions & 2 deletions banner/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
version = "1.4.8"
version = "1.4.9"

android {
compileSdkVersion 23
@@ -10,7 +10,7 @@ android {
defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 39
versionCode 40
versionName version
}
buildTypes {
Loading

0 comments on commit 0c438b8

Please sign in to comment.