diff --git a/README.md b/README.md index 677e50de..ce07207a 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ BannerViewPager supports three Indicator Styles now. It's also support you to cu | BannerViewPager setAutoPlay(boolean autoPlay) | set is atuo play | default value true| | BannerViewPager setInterval(int interval) | set the interval of item switch interval |The unit is millisecond,default value 3000ms | | BannerViewPager setScrollDuration(int scrollDuration) | set page scroll duration | set page scroll duration |unit is millisecond,default is 500ms | -| BannerViewPager setRoundCorner(int radius) | set Round Corner for Banner | required SDK_INT>=LOLLIPOP(API 21) | +| BannerViewPager setRoundRect(int radius) | set Round Rectangle for Banner | required SDK_INT>=LOLLIPOP(API 21) | | BannerViewPager setOnPageClickListener(OnPageClickListener onPageClickListener) | set item click listener | | | BannerViewPager setHolderCreator(HolderCreator\ holderCreator) |set Holder Creator |You must set HolderCreator for BannerViewPager,or will throw NullPointerException| | BannerViewPager setIndicatorVisibility(@Visibility int visibility) | indicator visibility |default value is VISIBLE,added in version 2.4.2| @@ -378,21 +378,21 @@ public class FigureIndicatorView extends BaseIndicatorView { - [x] Fix a bug which page frozen sometimes when sliding in version 2.1.0 (2.1.0.1) - - [x] support setTransformStyle(2.1.2) + - [x] Set Transform Style Supported(2.1.2) - [x] Migrate to Androidx(2.2.0) - - [x] Support indicator smooth slide(2.2.2) + - [x] indicator smooth slide Supported(2.2.2) - - [x] Support Dash IndicatorView(2.3.+) + - [x] Dash IndicatorView Supported(2.3.+) - - [x] Support MULTI_PAGE Style (2.4.0) + - [x] MULTI_PAGE Style Supported(2.4.0) - [x] Optimize code and improve performance in version 2.4.3 - [x] Refactor Indicator again (2.5.0) - - - [ ] Change ViewPager to ViewPager2 (3.0.0) + - [x] Fix issue #34 which Indicator smooth slide problem(2.6.1). + - [ ] Migrate to ViewPager2 (3.0.0) ## If you have any question you can scan the QR code to join the QQ group to communicate. diff --git a/README_CN.md b/README_CN.md index 794afbaa..611bbe8b 100644 --- a/README_CN.md +++ b/README_CN.md @@ -61,7 +61,7 @@ BannerViewPager支持多种IndicatorViewStyle,同时还提供了完全自定义I | BannerViewPager setAutoPlay(boolean autoPlay) | 是否开启自动轮播 | 默认值true| | BannerViewPager setInterval(int interval) | 自动轮播时间间隔 |单位毫秒,默认值3000 | | BannerViewPager setScrollDuration(int scrollDuration) | 设置页面滚动时间 | 设置页面滚动时间 |单位毫秒,默认值500 | -| BannerViewPager setRoundCorner(int radius) | 设置圆角 |默认无圆角 需要SDK_INT>=LOLLIPOP(API 21) | +| BannerViewPager setRoundRect(int radius) | 设置圆角 |默认无圆角 需要SDK_INT>=LOLLIPOP(API 21) | | BannerViewPager setOnPageClickListener(OnPageClickListener onPageClickListener) | 设置页面点击事件 | | | BannerViewPager setHolderCreator(HolderCreator\ holderCreator) |设置HolderCreator |必须设置HolderCreator,否则会抛出NullPointerException| | BannerViewPager setIndicatorVisibility(@Visibility int visibility) | indicator visibility |默认值VISIBLE 2.4.2 新增| @@ -391,6 +391,7 @@ public class FigureIndicatorView extends BaseIndicatorView { - [x] v2.4.3版本着重优化提升性能 - [x] 重构Indicator,~~尽量修复Indicator SMOOTH模式下滑动问题~~ (2.5.0) - [x] 目前Indicator部分代码比较乱,还有很大很大的优化空间,后续版本将持续优化(2.5.0对Indicator再次进行了重构,重构后代码已经很整洁,但仍然有优化空间) + - [x] 修复 issue #34 Indicator 在Smooth模式下存在的问题 (2.6.1). - [ ] ViewPager更换为ViewPager2 (3.0.0) diff --git a/app/release/app-release.apk b/app/release/app-release.apk index 175ec313..74c249f4 100644 Binary files a/app/release/app-release.apk and b/app/release/app-release.apk differ diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/activity/PhotoViewActivity.kt b/app/src/main/java/com/example/zhpan/circleviewpager/activity/PhotoViewActivity.kt index 05b740f7..81db2a2c 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/activity/PhotoViewActivity.kt +++ b/app/src/main/java/com/example/zhpan/circleviewpager/activity/PhotoViewActivity.kt @@ -23,7 +23,6 @@ class PhotoViewActivity : BaseDataActivity() { bannerViewPager.setAutoPlay(false) .setCanLoop(false) .setHolderCreator { PhotoViewHolder() } - .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH) .create(mDrawableList) bannerViewPager.currentItem = 1 } diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.kt b/app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.kt index bfdb7b71..5257eeb1 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.kt +++ b/app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.kt @@ -30,7 +30,7 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator private val des = arrayOf("在这里\n你可以听到周围人的心声", "在这里\nTA会在下一秒遇见你", "在这里\n不再错过可以改变你一生的人") - private val transforms = intArrayOf(TransformerStyle.NONE, TransformerStyle.ACCORDION, TransformerStyle.STACK, TransformerStyle.DEPTH, TransformerStyle.ROTATE) + private val transforms = intArrayOf(TransformerStyle.NONE, TransformerStyle.ACCORDION, TransformerStyle.STACK, TransformerStyle.DEPTH, TransformerStyle.ROTATE, TransformerStyle.SCALE_IN) private val data: List get() { @@ -56,7 +56,7 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator mViewPager = findViewById(R.id.viewpager) mViewPager.setAutoPlay(false) .setCanLoop(false) - .setPageTransformerStyle(transforms[Random().nextInt(5)]) + .setPageTransformerStyle(transforms[Random().nextInt(6)]) .setScrollDuration(ANIMATION_DURATION) .setIndicatorMargin(0, 0, 0, BannerUtils.dp2px(100f)) .setIndicatorGap(resources.getDimension(R.dimen.dp_10).toInt()) @@ -66,7 +66,7 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator .setIndicatorRadius(resources.getDimension(R.dimen.dp_3).toInt(), resources.getDimension(R.dimen.dp_4_5).toInt()) .setOnPageChangeListener(object : OnPageChangeListenerAdapter() { override fun onPageSelected(position: Int) { - BannerUtils.e("position:$position") + BannerUtils.log("position:$position") updateUI(position) } }) diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java index febe1cd4..ee9594b3 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java +++ b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/HomeFragment.java @@ -3,6 +3,7 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; +import android.widget.TextView; import android.widget.Toast; import androidx.recyclerview.widget.DividerItemDecoration; @@ -19,8 +20,9 @@ import com.scwang.smartrefresh.header.MaterialHeader; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.zhpan.bannerview.BannerViewPager; -import com.zhpan.bannerview.constants.PageStyle; -import com.zhpan.bannerview.utils.BannerUtils; +import com.zhpan.bannerview.adapter.OnPageChangeListenerAdapter; +import com.zhpan.bannerview.constants.IndicatorSlideMode; +import com.zhpan.bannerview.indicator.IndicatorView; import com.zhpan.idea.net.common.ResponseObserver; import com.zhpan.idea.utils.RxUtil; @@ -39,6 +41,8 @@ public class HomeFragment extends BaseFragment { private CustomRecyclerView recyclerView; private ArticleAdapter articleAdapter; private SmartRefreshLayout mSmartRefreshLayout; + private IndicatorView mIndicatorView; + private TextView mTvTitle; @Override protected int getLayout() { @@ -87,6 +91,8 @@ private void fetchData(boolean showLoading) { public void onSuccess(DataWrapper response) { mBannerViewPager.create(response.getDataBeanList()); articleAdapter.setData(response.getArticleList()); + if (response.getDataBeanList().size() > 0) + mTvTitle.setText(response.getDataBeanList().get(0).getTitle()); } @Override @@ -108,14 +114,20 @@ private Observable> getBannerObserver() { private void initBanner() { mBannerViewPager .setAutoPlay(true) + .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH) .setInterval(5000) .setScrollDuration(1200) -// .setRevealWidth(BannerUtils.dp2px(10)) - .setPageMargin(BannerUtils.dp2px(10)) - .setPageStyle(PageStyle.MULTI_PAGE) + .setIndicatorView(mIndicatorView)// 这里为了设置标题故用了自定义Indicator,如果无需标题则没必要添加此行代码 .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color)) .setHolderCreator(NetViewHolder::new) - .setIndicatorMargin(0, 0, 0, (int) getResources().getDimension(R.dimen.dp_18)) + .setOnPageChangeListener(new OnPageChangeListenerAdapter() { + @Override + public void onPageSelected(int position) { + super.onPageSelected(position); + BannerData bannerData = mBannerViewPager.getList().get(position); + mTvTitle.setText(bannerData.getTitle()); + } + }) .setOnPageClickListener(this::onPageClicked); } @@ -127,6 +139,8 @@ private void onPageClicked(int position) { private View getHeaderView() { View view = LayoutInflater.from(getMContext()).inflate(R.layout.item_header_view, recyclerView, false); mBannerViewPager = view.findViewById(R.id.banner_view); + mTvTitle = view.findViewById(R.id.tv_title); + mIndicatorView = view.findViewById(R.id.indicator_view); return view; } } diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/IndicatorFragment.java b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/IndicatorFragment.java index 51afae49..71419bac 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/IndicatorFragment.java +++ b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/IndicatorFragment.java @@ -10,6 +10,7 @@ import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder; import com.zhpan.bannerview.BannerViewPager; import com.zhpan.bannerview.constants.IndicatorGravity; +import com.zhpan.bannerview.constants.IndicatorSlideMode; import com.zhpan.bannerview.constants.IndicatorStyle; import com.zhpan.bannerview.utils.BannerUtils; import com.zhpan.idea.utils.ToastUtils; @@ -39,7 +40,7 @@ protected void initView(Bundle savedInstanceState, View view) { radioGroupStyle = view.findViewById(R.id.rg_indicator_style); mViewPager = view.findViewById(R.id.banner_view); mViewPager.setIndicatorGap(BannerUtils.dp2px(6)) - .setRoundCorner(BannerUtils.dp2px(6)) + .setRoundRect(BannerUtils.dp2px(6)) .setHolderCreator(() -> new ImageResourceViewHolder(0)); initRadioGroup(); } @@ -72,6 +73,7 @@ private void setupTmallIndicator() { mViewPager .setIndicatorStyle(IndicatorStyle.DASH) .setIndicatorGap(0) + .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH) .setIndicatorColor(getColor(R.color.white_alpha_75), getColor(R.color.white)) .setIndicatorWidth(BannerUtils.dp2px(12), BannerUtils.dp2px(12)) .setIndicatorHeight(BannerUtils.dp2px(1.5f)) @@ -83,6 +85,7 @@ private void setupRoundRectIndicator() { .setIndicatorGravity(IndicatorGravity.CENTER) .setIndicatorGap(BannerUtils.dp2px(4)) .setPageMargin(0) + .setIndicatorSlideMode(IndicatorSlideMode.NORMAL) .setIndicatorHeight(BannerUtils.dp2px(4f)) .setOnPageClickListener(position -> ToastUtils.show("position:" + position)) .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color)) @@ -91,6 +94,7 @@ private void setupRoundRectIndicator() { private void setupCircleIndicator() { mViewPager.setIndicatorStyle(IndicatorStyle.CIRCLE) + .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH) .setIndicatorGravity(IndicatorGravity.CENTER) .setIndicatorGap(BannerUtils.dp2px(6)) .setPageMargin(0) @@ -103,6 +107,7 @@ private void setupDashIndicator() { mViewPager.setIndicatorStyle(IndicatorStyle.DASH) .setIndicatorHeight(BannerUtils.dp2px(3f)) .setIndicatorGravity(IndicatorGravity.CENTER) + .setIndicatorSlideMode(IndicatorSlideMode.NORMAL) .setIndicatorGap(BannerUtils.dp2px(3)) .setPageMargin(0) .setIndicatorWidth(BannerUtils.dp2px(3), BannerUtils.dp2px(10)) diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java index 83295465..0a614521 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java +++ b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java @@ -13,6 +13,7 @@ import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder; import com.zhpan.bannerview.BannerViewPager; import com.zhpan.bannerview.constants.IndicatorGravity; +import com.zhpan.bannerview.constants.IndicatorSlideMode; import com.zhpan.bannerview.indicator.IIndicator; import com.zhpan.bannerview.indicator.IndicatorView; import com.zhpan.bannerview.utils.BannerUtils; @@ -51,7 +52,7 @@ protected void initView(Bundle savedInstanceState, View view) { view.findViewById(R.id.tv_photo_view).setOnClickListener(this); view.findViewById(R.id.btn_refresh).setOnClickListener(v -> updateData()); mViewPager.setIndicatorGap(BannerUtils.dp2px(6)) - .setRoundCorner(BannerUtils.dp2px(6)) + .setRoundRect(BannerUtils.dp2px(6)) .setOnPageClickListener(position -> ToastUtils.show("Position:" + position)) .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color)) .setHolderCreator(() -> new ImageResourceViewHolder(0)); @@ -84,6 +85,7 @@ private void initRadioGroup() { private void setIndicatorBelowOfBanner() { mIndicatorView.setVisibility(View.VISIBLE); mViewPager + .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH) .setIndicatorVisibility(View.GONE) .setIndicatorView(mIndicatorView) .create(getMDrawableList()); @@ -93,6 +95,7 @@ private void setIndicatorBelowOfBanner() { private void setupCustomIndicator() { mIndicatorView.setVisibility(View.INVISIBLE); mViewPager.setAutoPlay(false).setCanLoop(true) + .setIndicatorSlideMode(IndicatorSlideMode.NORMAL) .setIndicatorVisibility(View.VISIBLE) .setPageMargin(BannerUtils.dp2px(20)) .setIndicatorGravity(IndicatorGravity.END) diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java index 60534666..22e097e2 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java +++ b/app/src/main/java/com/example/zhpan/circleviewpager/fragment/PageFragment.java @@ -9,6 +9,7 @@ import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder; import com.zhpan.bannerview.BannerViewPager; import com.zhpan.bannerview.annotation.APageStyle; +import com.zhpan.bannerview.constants.IndicatorSlideMode; import com.zhpan.bannerview.constants.PageStyle; import com.zhpan.bannerview.utils.BannerUtils; import com.zhpan.idea.utils.ToastUtils; @@ -38,6 +39,7 @@ protected void initView(Bundle savedInstanceState, View view) { mRadioGroupPageStyle = view.findViewById(R.id.rg_page_style); radioButton = view.findViewById(R.id.rb_multi_page); mViewPager + .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH) .setHolderCreator(() -> new ImageResourceViewHolder(BannerUtils.dp2px(5))) .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color)) .setOnPageClickListener(position -> ToastUtils.show("position:" + position)) diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/imageloader/GlideImageLoader.java b/app/src/main/java/com/example/zhpan/circleviewpager/imageloader/GlideImageLoader.java index bcf930cd..75acca8d 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/imageloader/GlideImageLoader.java +++ b/app/src/main/java/com/example/zhpan/circleviewpager/imageloader/GlideImageLoader.java @@ -10,7 +10,6 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.request.RequestOptions; -import com.example.zhpan.circleviewpager.imageloader.transformer.BlurTransformation; import java.util.ArrayList; import java.util.List; @@ -57,9 +56,6 @@ private void setTransformation(ImageLoaderOptions options, RequestOptions reques list.add(new RoundedCorners((int)options.getRoundCorner())); } - if(options.isBlurImage()) { - list.add(new BlurTransformation(options.getBlurValue())); - } for(Transformation transformation : list) { requestOptions.transform(transformation); diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/imageloader/transformer/BlurTransformation.java b/app/src/main/java/com/example/zhpan/circleviewpager/imageloader/transformer/BlurTransformation.java deleted file mode 100644 index 0f65e930..00000000 --- a/app/src/main/java/com/example/zhpan/circleviewpager/imageloader/transformer/BlurTransformation.java +++ /dev/null @@ -1,247 +0,0 @@ -package com.example.zhpan.circleviewpager.imageloader.transformer; - -import android.graphics.Bitmap; -import androidx.annotation.IntRange; -import androidx.annotation.NonNull; - -import com.bumptech.glide.load.Key; -import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; -import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; - -import java.security.MessageDigest; - -public class BlurTransformation extends BitmapTransformation { - private static final String ID = BlurTransformation.class.getName(); - private static final byte[] ID_BYTES = ID.getBytes(Key.CHARSET); - - private int defaultRadius = 15; - - public BlurTransformation(@IntRange(from = 0) int radius) { - defaultRadius = radius; - } - - @Override - public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) { - messageDigest.update(ID_BYTES); - - } - - @Override - protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, - int outHeight) { - return fastBlur(toTransform, defaultRadius); - } - - @Override - public boolean equals(Object o) { - return o instanceof BlurTransformation; - } - - @Override - public int hashCode() { - return ID.hashCode(); - } - - private static Bitmap fastBlur(Bitmap sentBitmap, int radius) { - // Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true); - if(sentBitmap == null) { - return null; - } - if(radius < 1) { - return null; - } - - int w = sentBitmap.getWidth(); - int h = sentBitmap.getHeight(); - - int[] pix = new int[w * h]; - // Log.e("pix", w + " " + h + " " + pix.length); - sentBitmap.getPixels(pix, 0, w, 0, 0, w, h); - - int wm = w - 1; - int hm = h - 1; - int wh = w * h; - int div = radius + radius + 1; - - int r[] = new int[wh]; - int g[] = new int[wh]; - int b[] = new int[wh]; - int rsum, gsum, bsum, x, y, i, p, yp, yi, yw; - int vmin[] = new int[Math.max(w, h)]; - - int divsum = (div + 1) >> 1; - divsum *= divsum; - int temp = 256 * divsum; - int dv[] = new int[temp]; - for(i = 0; i < temp; i++) { - dv[i] = (i / divsum); - } - - yw = yi = 0; - - int[][] stack = new int[div][3]; - int stackpointer; - int stackstart; - int[] sir; - int rbs; - int r1 = radius + 1; - int routsum, goutsum, boutsum; - int rinsum, ginsum, binsum; - - for(y = 0; y < h; y++) { - rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; - for(i = -radius; i <= radius; i++) { - p = pix[yi + Math.min(wm, Math.max(i, 0))]; - sir = stack[i + radius]; - sir[0] = (p & 0xff0000) >> 16; - sir[1] = (p & 0x00ff00) >> 8; - sir[2] = (p & 0x0000ff); - rbs = r1 - Math.abs(i); - rsum += sir[0] * rbs; - gsum += sir[1] * rbs; - bsum += sir[2] * rbs; - if(i > 0) { - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - } else { - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - } - } - stackpointer = radius; - - for(x = 0; x < w; x++) { - - r[yi] = dv[rsum]; - g[yi] = dv[gsum]; - b[yi] = dv[bsum]; - - rsum -= routsum; - gsum -= goutsum; - bsum -= boutsum; - - stackstart = stackpointer - radius + div; - sir = stack[stackstart % div]; - - routsum -= sir[0]; - goutsum -= sir[1]; - boutsum -= sir[2]; - - if(y == 0) { - vmin[x] = Math.min(x + radius + 1, wm); - } - p = pix[yw + vmin[x]]; - - sir[0] = (p & 0xff0000) >> 16; - sir[1] = (p & 0x00ff00) >> 8; - sir[2] = (p & 0x0000ff); - - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - - rsum += rinsum; - gsum += ginsum; - bsum += binsum; - - stackpointer = (stackpointer + 1) % div; - sir = stack[(stackpointer) % div]; - - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - - rinsum -= sir[0]; - ginsum -= sir[1]; - binsum -= sir[2]; - yi++; - } - yw += w; - } - for(x = 0; x < w; x++) { - rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; - yp = -radius * w; - for(i = -radius; i <= radius; i++) { - yi = Math.max(0, yp) + x; - - sir = stack[i + radius]; - - sir[0] = r[yi]; - sir[1] = g[yi]; - sir[2] = b[yi]; - - rbs = r1 - Math.abs(i); - - rsum += r[yi] * rbs; - gsum += g[yi] * rbs; - bsum += b[yi] * rbs; - - if(i > 0) { - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - } else { - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - } - - if(i < hm) { - yp += w; - } - } - yi = x; - stackpointer = radius; - for(y = 0; y < h; y++) { - // Preserve alpha channel: ( 0xff000000 & pix[yi] ) - pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum]; - - rsum -= routsum; - gsum -= goutsum; - bsum -= boutsum; - - stackstart = stackpointer - radius + div; - sir = stack[stackstart % div]; - - routsum -= sir[0]; - goutsum -= sir[1]; - boutsum -= sir[2]; - - if(x == 0) { - vmin[y] = Math.min(y + r1, hm) * w; - } - p = x + vmin[y]; - - sir[0] = r[p]; - sir[1] = g[p]; - sir[2] = b[p]; - - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - - rsum += rinsum; - gsum += ginsum; - bsum += binsum; - - stackpointer = (stackpointer + 1) % div; - sir = stack[stackpointer]; - - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - - rinsum -= sir[0]; - ginsum -= sir[1]; - binsum -= sir[2]; - - yi += w; - } - } - // bitmap.setPixels(pix, 0, w, 0, 0, w, h); - // return (bitmap); - return Bitmap.createBitmap(pix, 0, w, w, h, Bitmap.Config.ARGB_8888); - } -} diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/recyclerview/ui/CustomAdapter.java b/app/src/main/java/com/example/zhpan/circleviewpager/recyclerview/ui/CustomAdapter.java index bfd383d7..06893295 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/recyclerview/ui/CustomAdapter.java +++ b/app/src/main/java/com/example/zhpan/circleviewpager/recyclerview/ui/CustomAdapter.java @@ -91,7 +91,7 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, headcount = 0; } // customViewHolder.setIsRecyclable(false); -// Log.e("CustomAdapter", "onCreateViewHolder#HEADVIEW_TYPE"); +// Log.log("CustomAdapter", "onCreateViewHolder#HEADVIEW_TYPE"); return customViewHolder; // }else{ // return new CustomViewHolder(mCache.get(contentView.getTag())); @@ -159,7 +159,7 @@ public void onClick(View v) { } } }); -// Log.e("CustomAdapter", "onBindViewHolder" + position + "------->" + customViewHolder); +// Log.log("CustomAdapter", "onBindViewHolder" + position + "------->" + customViewHolder); } else { mAdapter.onBindViewHolder(viewHolder, position - getHeadSize()); } diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/view/CornerImageView.kt b/app/src/main/java/com/example/zhpan/circleviewpager/view/CornerImageView.kt index e93cedba..769e3db7 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/view/CornerImageView.kt +++ b/app/src/main/java/com/example/zhpan/circleviewpager/view/CornerImageView.kt @@ -13,7 +13,7 @@ class CornerImageView @JvmOverloads constructor(context: Context, attrs: Attribu fun setRoundCorner(radius: Int) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val viewStyleSetter = ViewStyleSetter(this) - viewStyleSetter.setRoundCorner(radius.toFloat()) + viewStyleSetter.setRoundRect(radius.toFloat()) } } } diff --git a/app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NetViewHolder.java b/app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NetViewHolder.java index 62627e9b..834ede2f 100644 --- a/app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NetViewHolder.java +++ b/app/src/main/java/com/example/zhpan/circleviewpager/viewholder/NetViewHolder.java @@ -26,7 +26,7 @@ public int getLayoutId() { @Override public void onBind(View itemView, BannerData data, int position, int size) { CornerImageView imageView = itemView.findViewById(R.id.banner_image); - imageView.setRoundCorner(BannerUtils.dp2px(5)); + imageView.setRoundCorner(BannerUtils.dp2px(0)); ImageLoaderOptions options = new ImageLoaderOptions.Builder() .into(imageView).load(data.getImagePath()) .placeHolder(R.drawable.placeholder).build(); diff --git a/app/src/main/res/layout/item_header_view.xml b/app/src/main/res/layout/item_header_view.xml index 05d3bdea..7459ffaf 100644 --- a/app/src/main/res/layout/item_header_view.xml +++ b/app/src/main/res/layout/item_header_view.xml @@ -1,7 +1,8 @@ - - + + + + + + + + + diff --git a/app/src/main/res/layout/item_net.xml b/app/src/main/res/layout/item_net.xml index f458fc36..7d4f6613 100644 --- a/app/src/main/res/layout/item_net.xml +++ b/app/src/main/res/layout/item_net.xml @@ -1,9 +1,7 @@ + android:layout_height="wrap_content"> extends RelativeLayout im private Handler mHandler = new Handler(); - private Runnable mRunnable = this::handlePosition; + private Runnable mRunnable = new Runnable() { + @Override + public void run() { + handlePosition(); + } + }; public BannerViewPager(Context context) { this(context, null); @@ -112,22 +117,25 @@ protected void onAttachedToWindow() { @SuppressLint("ClickableViewAccessibility") private void setTouchListener() { - mViewPager.setOnTouchListener((v, event) -> { - int action = event.getAction(); - switch (action) { - case MotionEvent.ACTION_DOWN: - case MotionEvent.ACTION_MOVE: - setLooping(true); - stopLoop(); - break; - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_CANCEL: - setLooping(false); - startLoop(); - default: - break; + mViewPager.setOnTouchListener(new OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + int action = event.getAction(); + switch (action) { + case MotionEvent.ACTION_DOWN: + case MotionEvent.ACTION_MOVE: + BannerViewPager.this.setLooping(true); + BannerViewPager.this.stopLoop(); + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + BannerViewPager.this.setLooping(false); + BannerViewPager.this.startLoop(); + default: + break; + } + return false; } - return false; }); } @@ -202,6 +210,7 @@ private void initBannerData(List list) { private void setIndicatorValues(List list) { BannerOptions bannerOptions = mBannerManager.bannerOptions(); + bannerOptions.resetIndicatorOptions(); if (isCustomIndicator && null != mIndicatorView) { initIndicator(mIndicatorView); } else { @@ -251,10 +260,10 @@ private void initIndicatorViewMargin() { } private void initRoundCorner() { - int roundCorner = mBannerManager.bannerOptions().getRoundCorner(); + int roundCorner = mBannerManager.bannerOptions().getRoundRectRadius(); if (roundCorner > 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ViewStyleSetter viewStyleSetter = new ViewStyleSetter(this); - viewStyleSetter.setRoundCorner(roundCorner); + viewStyleSetter.setRoundRect(roundCorner); } } @@ -288,9 +297,12 @@ private PagerAdapter getPagerAdapter(List list) { mBannerPagerAdapter = new BannerPagerAdapter<>(list, holderCreator); mBannerPagerAdapter.setCanLoop(isCanLoop()); - mBannerPagerAdapter.setPageClickListener(position -> { - if (mOnPageClickListener != null) { - mOnPageClickListener.onPageClick(position); + mBannerPagerAdapter.setPageClickListener(new BannerPagerAdapter.PageClickListener() { + @Override + public void onPageClick(int position) { + if (mOnPageClickListener != null) { + mOnPageClickListener.onPageClick(position); + } } }); return mBannerPagerAdapter; @@ -382,12 +394,26 @@ public BannerViewPager setHolderCreator(HolderCreator holderCreator) } /** - * 设置圆角ViewPager 只有在SDK_INT>=LOLLIPOP(API 21)时有效 - * * @param radius 圆角大小 + * @deprecated Use{@link BannerViewPager#setRoundRect(int)} instead. + *

+ * 设置圆角ViewPager 只有在SDK_INT>=LOLLIPOP(API 21)时有效 */ + @Deprecated public BannerViewPager setRoundCorner(int radius) { - mBannerManager.bannerOptions().setRoundCorner(radius); + mBannerManager.bannerOptions().setRoundRectRadius(radius); + return this; + } + + /** + * Set round rectangle effect for BannerViewPager. + *

+ * Require SDK_INT>=LOLLIPOP(API 21) + * + * @param radius round radius + */ + public BannerViewPager setRoundRect(int radius) { + mBannerManager.bannerOptions().setRoundRectRadius(radius); return this; } diff --git a/bannerview/src/main/java/com/zhpan/bannerview/adapter/BannerPagerAdapter.java b/bannerview/src/main/java/com/zhpan/bannerview/adapter/BannerPagerAdapter.java index 97b3cbfb..5483b305 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/adapter/BannerPagerAdapter.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/adapter/BannerPagerAdapter.java @@ -56,7 +56,6 @@ public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { public @NonNull Object instantiateItem(@NonNull final ViewGroup container, final int position) { View itemView = getView(container, BannerUtils.getRealPosition(isCanLoop, position, mList.size())); - container.addView(itemView); return itemView; } @@ -97,11 +96,14 @@ private View createView(ViewHolder holder, int position, ViewGroup container) return itemView; } - private void setViewListener(View view, int position) { + private void setViewListener(View view, final int position) { if (view != null) - view.setOnClickListener(v -> { - if (null != mPageClickListener) - mPageClickListener.onPageClick(position); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (null != mPageClickListener) + mPageClickListener.onPageClick(position); + } }); } diff --git a/bannerview/src/main/java/com/zhpan/bannerview/annotation/ATransformerStyle.java b/bannerview/src/main/java/com/zhpan/bannerview/annotation/ATransformerStyle.java index fb051465..93a992f9 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/annotation/ATransformerStyle.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/annotation/ATransformerStyle.java @@ -11,6 +11,7 @@ import static com.zhpan.bannerview.constants.TransformerStyle.DEPTH; import static com.zhpan.bannerview.constants.TransformerStyle.NONE; import static com.zhpan.bannerview.constants.TransformerStyle.ROTATE; +import static com.zhpan.bannerview.constants.TransformerStyle.SCALE_IN; import static com.zhpan.bannerview.constants.TransformerStyle.STACK; /** @@ -19,7 +20,7 @@ * Description: * */ -@IntDef({NONE, DEPTH, STACK, ACCORDION, ROTATE}) +@IntDef({NONE, DEPTH, STACK, ACCORDION, ROTATE,SCALE_IN}) @Retention(RetentionPolicy.SOURCE) @Target(ElementType.PARAMETER) public @interface ATransformerStyle { diff --git a/bannerview/src/main/java/com/zhpan/bannerview/constants/TransformerStyle.java b/bannerview/src/main/java/com/zhpan/bannerview/constants/TransformerStyle.java index 29546b89..7678cc5f 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/constants/TransformerStyle.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/constants/TransformerStyle.java @@ -6,4 +6,5 @@ public interface TransformerStyle { int STACK = 1 << 2; int ACCORDION = 1 << 3; int ROTATE = 1 << 4; + int SCALE_IN = 1 << 5; } diff --git a/bannerview/src/main/java/com/zhpan/bannerview/holder/ViewHolder.java b/bannerview/src/main/java/com/zhpan/bannerview/holder/ViewHolder.java index 6244ec8b..410fd5f0 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/holder/ViewHolder.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/holder/ViewHolder.java @@ -11,10 +11,11 @@ public interface ViewHolder { + /** + * @return Layout Resource of BannerViewPager item + */ @LayoutRes int getLayoutId(); -// void createView(View itemView,int position); - /** * @param itemView ViewPager item View * @param data 实体类对象 diff --git a/bannerview/src/main/java/com/zhpan/bannerview/indicator/BaseIndicatorView.java b/bannerview/src/main/java/com/zhpan/bannerview/indicator/BaseIndicatorView.java index 8a8e94c4..f3f0c9f9 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/indicator/BaseIndicatorView.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/indicator/BaseIndicatorView.java @@ -43,32 +43,31 @@ public void onPageSelected(int position) { setCurrentPosition(position); setSlideProgress(0); invalidate(); - } else if (getSlideMode() == IndicatorSlideMode.SMOOTH) { - boolean slideToRight = mIndicatorOptions.isSlideToRight(); - if (position == 0 && slideToRight) { - setCurrentPosition(0); - setSlideProgress(0); - invalidate(); - } else if (position == getPageSize() - 1 && !slideToRight) { - setCurrentPosition(getPageSize() - 1); - setSlideProgress(0); - invalidate(); - } } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - if (getSlideMode() == IndicatorSlideMode.SMOOTH) { - setSlideToRight(isSlideToRight(position, positionOffset)); - // TODO 解决滑动过快时positionOffset不会等0的情况 - if (positionOffset == 0) { - setPrePosition(position); - } - if (!(position == getPageSize() - 1)) { - float slideProgress = (getCurrentPosition() == getPageSize() - 1) && isSlideToRight() ? 0 : positionOffset; - setSlideProgress(slideProgress); + if (getSlideMode() == IndicatorSlideMode.SMOOTH && getPageSize() > 1 && positionOffset != 0) { + scrollSlider(position, positionOffset); + } + } + + private void scrollSlider(int position, float positionOffset) { + for (int i = 0; i < getPageSize(); i++) { + if (position % getPageSize() == getPageSize() - 1) { // 最后一个页面与第一个页面 + if (positionOffset < 0.5) { + setCurrentPosition(position); + setSlideProgress(0); + invalidate(); + } else { + setCurrentPosition(0); + setSlideProgress(0); + invalidate(); + } + } else { // 中间页面 setCurrentPosition(position); + setSlideProgress(positionOffset); invalidate(); } } diff --git a/bannerview/src/main/java/com/zhpan/bannerview/manager/AttributeController.java b/bannerview/src/main/java/com/zhpan/bannerview/manager/AttributeController.java index 1406a359..894a6b1b 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/manager/AttributeController.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/manager/AttributeController.java @@ -69,7 +69,7 @@ private void initBannerAttrs(TypedArray typedArray) { mBannerOptions.setAutoPlay(isAutoPlay); mBannerOptions.setCanLoop(isCanLoop); mBannerOptions.setPageMargin(pageMargin); - mBannerOptions.setRoundCorner(roundCorner); + mBannerOptions.setRoundRectRadius(roundCorner); mBannerOptions.setRevealWidth(revealWidth); mBannerOptions.setPageStyle(pageStyle); mBannerOptions.setScrollDuration(scrollDuration); diff --git a/bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java b/bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java index 81913e60..4921fe82 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java @@ -43,7 +43,7 @@ public BannerOptions() { private int mScrollDuration; - private int mRoundCorner; + private int mRoundRadius; private boolean disableTouchScroll; @@ -197,12 +197,12 @@ public void setIndicatorMargin(int left, int top, int right, int bottom) { mIndicatorMargin = new IndicatorMargin(left, top, right, bottom); } - public int getRoundCorner() { - return mRoundCorner; + public int getRoundRectRadius() { + return mRoundRadius; } - public void setRoundCorner(int roundCorner) { - this.mRoundCorner = roundCorner; + public void setRoundRectRadius(int roundRadius) { + this.mRoundRadius = roundRadius; } public int getScrollDuration() { @@ -229,6 +229,11 @@ public void setDisableTouchScroll(boolean disableTouchScroll) { this.disableTouchScroll = disableTouchScroll; } + public void resetIndicatorOptions(){ + mIndicatorOptions.setCurrentPosition(0); + mIndicatorOptions.setSlideProgress(0); + } + public static class IndicatorMargin { private int left, right, top, bottom; diff --git a/bannerview/src/main/java/com/zhpan/bannerview/provider/ViewStyleSetter.java b/bannerview/src/main/java/com/zhpan/bannerview/provider/ViewStyleSetter.java index 974a14d1..de839c29 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/provider/ViewStyleSetter.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/provider/ViewStyleSetter.java @@ -27,7 +27,7 @@ public ViewStyleSetter(View view) { * @param radius 圆角半径 */ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - public void setRoundCorner(float radius) { + public void setRoundRect(float radius) { this.mView.setClipToOutline(true);// 用outline裁剪内容区域 this.mView.setOutlineProvider(new RoundViewOutlineProvider(radius)); } @@ -36,7 +36,7 @@ public void setRoundCorner(float radius) { * 设置View为圆形 */ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - public void setOval() { + public void setOvalView() { this.mView.setClipToOutline(true);// 用outline裁剪内容区域 this.mView.setOutlineProvider(new OvalViewOutlineProvider()); } diff --git a/bannerview/src/main/java/com/zhpan/bannerview/transform/PageTransformerFactory.java b/bannerview/src/main/java/com/zhpan/bannerview/transform/PageTransformerFactory.java index 58d4ebda..5b1be0cb 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/transform/PageTransformerFactory.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/transform/PageTransformerFactory.java @@ -5,6 +5,7 @@ import static com.zhpan.bannerview.constants.TransformerStyle.ACCORDION; import static com.zhpan.bannerview.constants.TransformerStyle.DEPTH; import static com.zhpan.bannerview.constants.TransformerStyle.ROTATE; +import static com.zhpan.bannerview.constants.TransformerStyle.SCALE_IN; import static com.zhpan.bannerview.constants.TransformerStyle.STACK; @@ -17,7 +18,7 @@ public ViewPager.PageTransformer createPageTransformer(int transformerStyle) { transformer = new DepthPageTransformer(); break; case ROTATE: - transformer=new RotateUpTransformer(); + transformer = new RotateUpTransformer(); break; case STACK: transformer = new StackTransformer(); @@ -25,6 +26,9 @@ public ViewPager.PageTransformer createPageTransformer(int transformerStyle) { case ACCORDION: transformer = new AccordionTransformer(); break; + case SCALE_IN: + transformer = new ScaleInTransformer(ScaleInTransformer.DEFAULT_MIN_SCALE); + break; } return transformer; } diff --git a/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/ScaleInTransformer.java b/bannerview/src/main/java/com/zhpan/bannerview/transform/ScaleInTransformer.java similarity index 67% rename from bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/ScaleInTransformer.java rename to bannerview/src/main/java/com/zhpan/bannerview/transform/ScaleInTransformer.java index b6d092c4..b1785610 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/ScaleInTransformer.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/transform/ScaleInTransformer.java @@ -1,37 +1,22 @@ -package com.zhpan.bannerview.transform.pagestyle; +package com.zhpan.bannerview.transform; -import android.annotation.TargetApi; -import android.os.Build; import android.view.View; import androidx.viewpager.widget.ViewPager; -public class ScaleInTransformer extends BasePageTransformer { +public class ScaleInTransformer implements ViewPager.PageTransformer { + private static final float DEFAULT_CENTER = 0.5f; public static final float DEFAULT_MIN_SCALE = 0.85f; public static final float MAX_SCALE = 0.999f; - private float mMinScale = DEFAULT_MIN_SCALE; - - public ScaleInTransformer() { - - } + private float mMinScale; public ScaleInTransformer(float minScale) { - this(minScale, NonPageTransformer.INSTANCE); - } - - public ScaleInTransformer(ViewPager.PageTransformer pageTransformer) { - this(DEFAULT_MIN_SCALE, pageTransformer); - } - - public ScaleInTransformer(float minScale, ViewPager.PageTransformer pageTransformer) { mMinScale = minScale; - mPageTransformer = pageTransformer; } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public void pageTransform(View view, float position) { + @Override + public void transformPage(View view, float position) { int pageWidth = view.getWidth(); int pageHeight = view.getHeight(); diff --git a/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/BasePageTransformer.java b/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/BasePageTransformer.java deleted file mode 100644 index 6b6fe7fa..00000000 --- a/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/BasePageTransformer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhpan.bannerview.transform.pagestyle; - -import android.annotation.TargetApi; -import android.os.Build; -import android.view.View; - -import androidx.viewpager.widget.ViewPager; - -public abstract class BasePageTransformer implements ViewPager.PageTransformer { - protected ViewPager.PageTransformer mPageTransformer = NonPageTransformer.INSTANCE; - public static final float DEFAULT_CENTER = 0.5f; - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public void transformPage(View view, float position) { - if (mPageTransformer != null) { - mPageTransformer.transformPage(view, position); - } - - pageTransform(view, position); - } - - protected abstract void pageTransform(View view, float position); - -} diff --git a/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/NonPageTransformer.java b/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/NonPageTransformer.java deleted file mode 100644 index f7b6e51b..00000000 --- a/bannerview/src/main/java/com/zhpan/bannerview/transform/pagestyle/NonPageTransformer.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.zhpan.bannerview.transform.pagestyle; - -import android.view.View; - -import androidx.viewpager.widget.ViewPager; - -public class NonPageTransformer implements ViewPager.PageTransformer { - @Override - public void transformPage(View page, float position) { - page.setScaleX(0.999f); - } - - public static final ViewPager.PageTransformer INSTANCE = new NonPageTransformer(); -} diff --git a/bannerview/src/main/java/com/zhpan/bannerview/utils/BannerUtils.java b/bannerview/src/main/java/com/zhpan/bannerview/utils/BannerUtils.java index 5b5e1375..e7ed752e 100644 --- a/bannerview/src/main/java/com/zhpan/bannerview/utils/BannerUtils.java +++ b/bannerview/src/main/java/com/zhpan/bannerview/utils/BannerUtils.java @@ -23,13 +23,13 @@ public static int dp2px(float dpValue) { return (int) (0.5F + dpValue * Resources.getSystem().getDisplayMetrics().density); } - public static void e(String tag, String msg) { + public static void log(String tag, String msg) { if (DEBUG) { Log.e(tag, msg); } } - public static void e(String msg) { + public static void log(String msg) { if (DEBUG) { Log.e("BannerView", msg); } diff --git a/bannerview/src/main/res/values/attrs.xml b/bannerview/src/main/res/values/attrs.xml index 9193937d..8dd565f7 100644 --- a/bannerview/src/main/res/values/attrs.xml +++ b/bannerview/src/main/res/values/attrs.xml @@ -39,6 +39,7 @@ + diff --git a/download/app.apk b/download/app.apk deleted file mode 100644 index 175ec313..00000000 Binary files a/download/app.apk and /dev/null differ