diff --git a/app/build.gradle b/app/build.gradle index f5618c1..85897b4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,4 +28,5 @@ dependencies { testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.2.1' compile project(':library') + compile 'com.github.bumptech.glide:glide:3.6.1' } diff --git a/app/src/main/java/com/yyydjk/sliderlayoutdemo/MainActivity.java b/app/src/main/java/com/yyydjk/sliderlayoutdemo/MainActivity.java index 8c82e75..d3f2ed4 100644 --- a/app/src/main/java/com/yyydjk/sliderlayoutdemo/MainActivity.java +++ b/app/src/main/java/com/yyydjk/sliderlayoutdemo/MainActivity.java @@ -2,14 +2,16 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.widget.ImageView; import android.widget.Toast; +import com.bumptech.glide.Glide; import com.yyydjk.library.BannerLayout; import java.util.ArrayList; import java.util.List; -public class MainActivity extends AppCompatActivity{ +public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { @@ -18,6 +20,27 @@ protected void onCreate(Bundle savedInstanceState) { BannerLayout bannerLayout = (BannerLayout) findViewById(R.id.banner); BannerLayout bannerLayout2 = (BannerLayout) findViewById(R.id.banner2); + //setListener必须在setViewUrls之前 + bannerLayout.setListener(new BannerLayout.ImageSetListener() { + @Override + public void setImage(Object res, ImageView imageView, int defaultImage) { + if (defaultImage != 0) { + Glide.with(MainActivity.this).load(res).placeholder(defaultImage).centerCrop().into(imageView); + } else { + Glide.with(MainActivity.this).load(res).centerCrop().into(imageView); + } + } + }); + bannerLayout2.setListener(new BannerLayout.ImageSetListener() { + @Override + public void setImage(Object res, ImageView imageView, int defaultImage) { + if (defaultImage != 0) { + Glide.with(MainActivity.this).load(res).placeholder(defaultImage).centerCrop().into(imageView); + } else { + Glide.with(MainActivity.this).load(res).centerCrop().into(imageView); + } + } + }); final List urls = new ArrayList<>(); urls.add("http://img3.imgtn.bdimg.com/it/u=2674591031,2960331950&fm=23&gp=0.jpg"); diff --git a/library/build.gradle b/library/build.gradle index 0fbd1ec..76936be 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -31,5 +31,4 @@ dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.2.1' - compile 'com.github.bumptech.glide:glide:3.6.1' } diff --git a/library/src/main/java/com/yyydjk/library/BannerLayout.java b/library/src/main/java/com/yyydjk/library/BannerLayout.java index 1165e45..03f1cf9 100644 --- a/library/src/main/java/com/yyydjk/library/BannerLayout.java +++ b/library/src/main/java/com/yyydjk/library/BannerLayout.java @@ -23,8 +23,6 @@ import android.widget.RelativeLayout; import android.widget.Scroller; -import com.bumptech.glide.Glide; - import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -65,6 +63,16 @@ public class BannerLayout extends RelativeLayout { private int defaultImage; + public ImageSetListener getListener() { + return listener; + } + + public void setListener(ImageSetListener listener) { + this.listener = listener; + } + + private ImageSetListener listener; + private int currentPosition; private enum Shape { @@ -207,7 +215,8 @@ public void onClick(View v) { } }); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - Glide.with(getContext()).load(res).centerCrop().into(imageView); + listener.setImage(res, imageView, defaultImage); +// Glide.with(getContext()).load(res).centerCrop().into(imageView); return imageView; } @@ -247,11 +256,12 @@ public void onClick(View v) { } }); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - if (defaultImage != 0){ - Glide.with(getContext()).load(url).placeholder(defaultImage).centerCrop().into(imageView); - }else { - Glide.with(getContext()).load(url).centerCrop().into(imageView); - } + listener.setImage(url, imageView, defaultImage); +// if (defaultImage != 0){ +// Glide.with(getContext()).load(url).placeholder(defaultImage).centerCrop().into(imageView); +// }else { +// Glide.with(getContext()).load(url).centerCrop().into(imageView); +// } return imageView; } @@ -526,6 +536,10 @@ public void startScroll(int startX, int startY, int dx, int dy) { super.startScroll(startX, startY, dx, dy, mDuration); } } + + public interface ImageSetListener{ + void setImage(Object res, ImageView imageView , int defaultImage); + } }