banner轮播图的实现
来源:互联网 发布:淘宝做床垫好做吗 编辑:程序博客网 时间:2024/06/05 09:17
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.sc.banner_demo.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="300dp" /> <!-- 这个线性布局是放图片下标位置的 --> <LinearLayout android:layout_width="match_parent" android:layout_height="20dp" android:orientation="horizontal" android:layout_gravity="center_horizontal" android:id="@+id/linearlayout" android:layout_alignBottom="@+id/viewpager" android:layout_alignParentLeft="true" android:gravity="center" android:layout_alignParentStart="true" android:layout_marginBottom="50dp"/></RelativeLayout>
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener { private ViewPager viewPager; private LinearLayout linearLayout; private int[] imagesPath;//五张图片路径 private int currentIndex=300;//当前页面的下标 private List<ImageView> views; private MyPagerAdapter adapter; private long lasttime; private Handler handler=new Handler(); private Runnable run=new Runnable() { @Override public void run() { //主线程 if (System.currentTimeMillis()-lasttime>4000){ currentIndex++; viewPager.setCurrentItem(currentIndex); lasttime=System.currentTimeMillis(); } handler.postDelayed(run,4000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initView(); } private void initView() { viewPager=(ViewPager)findViewById(R.id.viewpager); linearLayout=(LinearLayout)findViewById(R.id.linearlayout); imagesPath=new int[]{R.mipmap.gril1,R.mipmap.gril2,R.mipmap.gril3,R.mipmap.gril4,R.mipmap.gril5}; views=new ArrayList<>(); //广告图片 for (int i = 0; i < imagesPath.length; i++) { ImageView img = new ImageView(this); img.setImageResource(imagesPath[i]); views.add(img); //圈的图片 ImageView img_circle=new ImageView(this); img_circle.setImageResource(R.mipmap.login_point);//默认没被选中 img_circle.setPadding(10,5,10,5); linearLayout.addView(img_circle); } //适配器 adapter=new MyPagerAdapter(views,MainActivity.this); viewPager.setAdapter(adapter); viewPager.setCurrentItem(300); viewPager.setOnPageChangeListener(this); handler.postDelayed(run,2000); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { currentIndex=position; int index=position%views.size(); setcurrentSelector(index); lasttime=System.currentTimeMillis(); } //根据选中图片的下标,设置该下标的按钮改变 private void setcurrentSelector(int index) { for (int i = 0; i < linearLayout.getChildCount(); i++) { ImageView child=(ImageView)linearLayout.getChildAt(i);//每个圆圈 if (i==index){ child.setImageResource(R.mipmap.login_point_select); }else{ child.setImageResource(R.mipmap.login_point); } } } @Override public void onPageScrollStateChanged(int state) { } @Override protected void onDestroy() { super.onDestroy(); handler.removeCallbacks(run); }}
public class MyPagerAdapter extends PagerAdapter{ private List<ImageView> views; private Context mContext; public MyPagerAdapter(List<ImageView> views, Context mContext) { this.views = views; this.mContext = mContext; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(View container, int position) { int index=position%views.size(); ((ViewPager)container).addView(views.get(index)); return views.get(index); } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager)container).removeView(views.get(position%views.size())); }}
0 0
- banner轮播图的实现
- Android的banner(轮播图)的实现
- Android 轮播图Banner的简单实现
- Banner的简单实现
- appframework实现Banner轮播图
- android banner 实现轮播图
- Banner 简单实现轮播图
- Banner实现无限轮播图
- Banner轮播图简单实现
- Android顶部banner轮播图的两种实现(ViewPager+ViewPagerIndicator/banner)
- 实现简单的banner变换
- Banner和XBanner的实现
- Banner轮播图的使用方法
- Banner轮播图的使用
- Banner轮播图的使用
- Banner轮播图的使用
- Banner轮播图的使用
- Banner轮播图的使用
- 边缘发光的表面着色器
- 在android系统源码中预置apK
- 宣告主权
- 怎么在jsp页面,用js弹出一个新的对话框
- 发布个JQuery的遮罩层实现(mask)
- banner轮播图的实现
- Android Picasso归纳以及谜一般的缓存
- java常用正则表达式模板
- ScopedPtr
- linux文件查找命令 locate
- JSTL标签库简介
- java 中 i=i++ 的解释
- day5_meta和img
- iOS 发虚现象(启动图问题)