1. 程式人生 > >自定義輪播圖(banner圖)

自定義輪播圖(banner圖)

public class MyBannerActivity extends AppCompatActivity {

    private String[] picUrl = {
            "https://img.huxiucdn.com/article/cover/201804/11/142701198959.jpg?imageView2/1/w/710/h/400/|imageMogr2/strip/interlace/1/quality/85/format/jpg",
            "https://img.huxiucdn.com/article/cover/201809/10/195039242422.jpg?imageView2/1/w/710/h/400/|imageMogr2/strip/interlace/1/quality/85/format/jpg",
            "https://img.huxiucdn.com/article/cover/201809/10/143541089263.jpg?imageView2/1/w/710/h/400/|imageMogr2/strip/interlace/1/quality/85/format/jpg"
    };
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 512 ){
                int item = viewPager.getCurrentItem()+1;
                viewPager.setCurrentItem(item);
            }
            handler.sendEmptyMessageDelayed(512,2000);
        }
    };
    private Context mcontext;
    private LinearLayout linearLayout;
    private ViewPager viewPager;

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_banner);
        mcontext = this;
        //初始化控制元件
        linearLayout = (LinearLayout) findViewById(R.id.linear);
        viewPager = (ViewPager) findViewById(R.id.viewpage);
        viewPager.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return Integer.MAX_VALUE;
            }

            @Override
            public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
                return view == o;
            }

            @Override
            public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
                container.removeView((View) object);
            }

            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            @NonNull
            @Override
            public Object instantiateItem(@NonNull ViewGroup container, int position) {

                View view = View.inflate(mcontext, R.layout.layout_image, null);
                ImageView image = (ImageView) view.findViewById(R.id.iv_imaeg);
                Picasso.with(mcontext).load(picUrl[position % picUrl.length]).into(image);
                setPiont(position % picUrl.length);
                container.addView(view);
                return view;
            }
        });
        viewPager.setCurrentItem(Integer.MAX_VALUE/2-4);
        handler.sendEmptyMessageDelayed(512,2000);
    }

	//設定小圓點
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private void setPiont(int postion) {
        linearLayout.removeAllViews();

        for (int i = 0 ; i <picUrl.length ; i ++){
            ImageView iamge = new ImageView(mcontext);
            if(postion == i){
                iamge.setImageDrawable(getDrawable(R.drawable.sildo));
            }else{
                iamge.setImageDrawable(getDrawable(R.drawable.unsildo));
            }
            linearLayout.addView(iamge);
            LinearLayout.LayoutParams params=(LinearLayout.LayoutParams)iamge.getLayoutParams();
            params.width=20;
            params.height=20;
            params.leftMargin=5;
            iamge.setLayoutParams(params);
            iamge.setScaleType(ImageView.ScaleType.FIT_XY);
        }
    }
}