BannerFrameLayout.java
public class BannerFrameLayout extends FrameLayout implements ImageBannerViewGroup.BannerDotListener {
private ImageBannerViewGroup mImageBannerViewGroup;
private LinearLayout mLinearLayout;
public ImageBannerViewGroup getmImageBannerViewGroup() {
return mImageBannerViewGroup;
}
public void setmImageBannerViewGroup(ImageBannerViewGroup mImageBannerViewGroup) {
this.mImageBannerViewGroup = mImageBannerViewGroup;
}
public LinearLayout getmLinearLayout() {
return mLinearLayout;
}
public void setmLinearLayout(LinearLayout mLinearLayout) {
this.mLinearLayout = mLinearLayout;
}
private Integer[] banners;
public BannerFrameLayout(@NonNull Context context) {
this(context, null);
}
public BannerFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public BannerFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
super(context, attrs, defStyleAttr);
initDragView();
initLinearLayout();
}
/**
* 设置Banner图的集合
*
* @param banners
* @param screenWidth 屏幕宽度
* @param screenHeight 屏幕高度
*/
public void addBanners(final Integer[] banners, int screenWidth, int screenHeight) {
this.banners = banners;
for (int i = 0; i < banners.length; i++) {
ImageView img = new ImageView(getContext());
img.setBackgroundResource(banners[i]);
img.setId(i);
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(screenWidth * banners.length, screenHeight / 4);
img.setScaleType(ImageView.ScaleType.CENTER_CROP);
img.setLayoutParams(lp);
mImageBannerViewGroup.addView(img);
}
addDotToLinearLayout(banners.length);
}
private void addDotToLinearLayout(int dotCount) {
for (int i = 0; i < dotCount; i++) {
ImageView dot = new ImageView(getContext());
Linear