自定義輪播圖(banner圖)
阿新 • • 發佈:2018-12-12
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); } } }