一、加小圆点后viewgroup类
/**
* Created by chenyifei on 2017/7/24.
*/
public class ImageBarnnerFramLayout extends FrameLayout implements ImageBarnnerVroup.ImageBarnnerViewGroupLisnner,ImageBarnnerVroup.ImageBarnnerListen{
private ImageBarnnerVroup imageBanner;
private LinearLayout linearlayout;
private FramlayoutListener framlayoutListener;
public FramlayoutListener getFramlayoutListener() {
return framlayoutListener;
}
public void setFramlayoutListener(FramlayoutListener framlayoutListener) {
this.framlayoutListener = framlayoutListener;
}
public ImageBarnnerFramLayout(@NonNull Context context) {
super(context);
initImageBarnnerViewGroup();
initDotLinearLayout();
}
public ImageBarnnerFramLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initImageBarnnerViewGroup();
initDotLinearLayout();
}
public ImageBarnnerFramLayout(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
super(context, attrs, defStyleAttr);
initImageBarnnerViewGroup();
initDotLinearLayout();
}
/**
* 初始化远点布局
*/
private void initDotLinearLayout() {
linearlayout = new LinearLayout(getContext());
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, 40);
linearlayout.setLayoutParams(lp);
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
linearlayout.setGravity(Gravity.CENTER);
// linearlayout.setBackgroundColor(Color.WHITE);
addView(linearlayout);
FrameLayout.LayoutParams layoutParams = (LayoutParams) linearlayout.getLayoutParams();
layoutParams.gravity =Gravity.BOTTOM;
linearlayout.setLayoutParams(layoutParams);
//3.0以后我们使用的是setAlpha();.3.0之前我们使用的也是这个方法,调用者不同
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB)
linearlayout.setAlpha(0.5f);
else
linearlayout.getBackground().setAlpha(100);
}
/**
* 初始化我们自定义的图片轮播的核心类
*/
private void initImageBarnnerViewGroup() {
imageBanner = new ImageBarnnerVroup(getContext());
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
imageBanner.setLayoutParams(lp);
imageBanner.setImageBarnnerViewGroupLisnner(this);
imageBanner.setImageBarnnerListen(this);
addView(imageBanner);
}
public void addBitmaps(List<Bitmap> list){
for(int i = 0; i<list.size();i++){
Bitmap bitmap = list.get(i);
addBitmapToImageBarnnerViewGroup(bitmap);
addDotToLinearlayout();
}
}
private void addDotToLinearlayout() {
ImageView iv = new ImageView(getContext());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(5,5,5,5);
iv.setLayoutParams(lp);
iv.setImageResource(R.drawable.dot_nomal);
linearlayout.addView(iv);
}
private void addBitmapToImageBarnnerViewGroup(Bitmap bitmap) {
ImageView imageView = new ImageView(getContext());
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setLayoutParams(new ViewGroup.LayoutParams(C.WIDTH,ViewGroup.LayoutParams.WRAP_CONTENT));
imageView.setImageBitmap(bitmap);
imageBanner.addView(imageView);
}
@Override
public void selectImage(int index) {
int count = linearlayout.getChildCount();
for (int i =0; i<count;i++){
ImageView iv = (ImageView) linearlayout.getChildAt(i);
if(i==index){
iv.setImageResource(R.drawable.dot_select);
}else
iv.setImageResource(R.drawable.dot_nomal);
}
}
@Override
public void clickImageIndex(int position) {
framlayoutListener.clickImageIndex(position);
}
public interface FramlayoutListener{
void clickImageIndex(int position);
}
}
/**
* Created by chenyi