升级版轮播图

- 编辑:小昭 -

升级版轮播图

引导页轮播
 
 
布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.zxwl.dsflx.MainActivity">
    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
    </android.support.v4.view.ViewPager>
   <LinearLayout
       android:gravity="center"
       android:id="@+id/ll"
       android:layout_width="match_parent"
 
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true">
       <ImageView
           android:id="@+id/image_one"
           android:src="@null"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           />
       <ImageView
           android:id="@+id/image_two"
           android:src="@null"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           />
       <ImageView
           android:id="@+id/image_three"
           android:src="@null"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           />
 
   </LinearLayout>
 
</RelativeLayout>
 
 
 
 
 
shape绘制小点
 
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <size
 
        android:width="32dp"
        android:height="32dp"/>
    <solid android:color="#9e9e9e"/>
    <padding
        android:left="10dp"
        android:right="10dp" />
 
</shape>
 
适配器
 
public class Adapter extends PagerAdapter {
    private ArrayList<View> list;
 
    public Adapter(ArrayList<View> list) {
        this.list = list;
    }
 
    @Override
    public int getCount() {
        return list.size();
    }
 
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }
 
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        container.addView(list.get(position));
        return list.get(position);
    }
 
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(list.get(position));
    }
}
 
 
 
主方法
 
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
 
import java.util.ArrayList;
 
import butterknife.Bind;
import butterknife.ButterKnife;
 
public class MainActivity extends AppCompatActivity {
 
    @Bind(R.id.vp)
    ViewPager vp;
    @Bind(R.id.image_one)
    ImageView imageOne;
    @Bind(R.id.image_two)
    ImageView imageTwo;
    @Bind(R.id.image_three)
    ImageView imageThree;
    @Bind(R.id.ll)
    LinearLayout ll;
    int x=0;
    private Handler han = new Handler();
    private Runnable runn= new Runnable() {
        @Override
        public void run() {
            x++;
            vp.setCurrentItem(x);
            han.postDelayed(runn,2000);
            if(x==2){
 
                 x=-1;
              }
        }
    };
    private SharedPreferences xx;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
 
 
        xx = this.getSharedPreferences("xx", MODE_PRIVATE);
        String pd = xx.getString("pd", null);
        if(pd!=null){
            startActivity(new Intent(MainActivity.this,Main2Activity.class));
            finish();
        }
 
 
 
 
 
        ArrayList<View> list =new ArrayList<>();
        View th = LayoutInflater.from(this).inflate(R.layout.three, null);
        View tw = LayoutInflater.from(this).inflate(R.layout.two, null);
        View on = LayoutInflater.from(this).inflate(R.layout.one, null);
 
        list.add(on);
        list.add(tw);
        list.add(th);
 
        Adapter adapter = new Adapter(list);
        vp.setAdapter(adapter);
 
        han.postDelayed(runn,2000);
 
        Button jr= th.findViewById(R.id.button);
        jr.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
 
                SharedPreferences.Editor edit = xx.edit();
                edit.putString("pd","ok");
                edit.commit();
                startActivity(new Intent(MainActivity.this,Main2Activity.class));
                finish();
                Toast.makeText(MainActivity.this, "1231", Toast.LENGTH_SHORT).show();
 
            }
        });
 
        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                switch (position){
                    case 0:
 
 
 
                        imageOne.setBackgroundResource(R.drawable.shape1);
                        imageTwo.setBackgroundResource(R.drawable.shape2);
                        imageThree.setBackgroundResource(R.drawable.shape2);
                        break;
                    case 1:
 
 
                        imageOne.setBackgroundResource(R.drawable.shape2);
                        imageTwo.setBackgroundResource(R.drawable.shape1);
                        imageThree.setBackgroundResource(R.drawable.shape2);
                        ll.setVisibility(View.VISIBLE);
                        break;
                    case 2:
 
 
                        ll.setVisibility(View.GONE);
 
                        break;
 
                }
            }
 
            @Override
            public void onPageSelected(int position) {
 
            }
 
            @Override
            public void onPageScrollStateChanged(int state) {
 
            }
        });
 
 
    }
}