轮播图

第一步

        xml中

<android.support.v4.view.ViewPager
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:id="@+id/vp"
    ></android.support.v4.view.ViewPager>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="54dp"
    android:id="@+id/liner"
    android:orientation="horizontal"
    android:gravity="center"
    ></LinearLayout>
<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="54dp"
    android:text="点击喔有惊喜呦"

   android:layout_gravity="bottom"
    />

第二步

    MainActivity中

package com.example.day18_test;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private ViewPager vp;
    private LinearLayout liner;
    private Button button;
    private int[]arr = {R.mipmap.a,R.mipmap.a,R.mipmap.a};
    private ArrayList<ImageView> initdata;
    private ArrayList<ImageView> listdata;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initData();
        initAdapter();
        initListerner();

    }

    private void initListerner() {
        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                for (int i = 0; i < 3; i++) {
                    if(position==i){
                        listdata.get(i).setImageResource(R.drawable.shapeselect);
                    }else{
                        listdata.get(i).setImageResource(R.drawable.shapenorth);
                    }

                    if(position==initdata.size()-1){

                        liner.setVisibility(View.GONE);
                        button.setVisibility(View.VISIBLE);
                    }else{
                        liner.setVisibility(View.VISIBLE);
                        button.setVisibility(View.GONE);
                    }
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

    private void initAdapter() {
        Adapter adapter = new Adapter(initdata);
        vp.setAdapter(adapter);
        vp.setCurrentItem(0);
    }


    private void initData() {
        initdata = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            ImageView image = new ImageView(this);
            image.setImageResource(arr[i]);
            image.setScaleType(ImageView.ScaleType.CENTER_CROP);
            initdata.add(image);
        }
        listdata = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            ImageView imageView = new ImageView(this);
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            layoutParams.leftMargin = 10;
            layoutParams.rightMargin = 10;
            layoutParams.height = 18;
            layoutParams.width = 18;
            if(i==0){
                imageView.setImageResource(R.drawable.shapeselect);

            }else {
                imageView.setImageResource(R.drawable.shapenorth);

            }
            liner.addView(imageView,layoutParams);
            listdata.add(imageView);


        }

    }

    private void initView() {
        vp = (ViewPager) findViewById(R.id.vp);
        liner = (LinearLayout) findViewById(R.id.liner);
        button = (Button) findViewById(R.id.button);

        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                Intent intent = new Intent(MainActivity.this, HomeActivity.class);
                startActivity(intent);
                break;
        }
    }
}

第三步

        在drwable中

(1)在 shape_north中

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    >
    <solid
        android:color="#ffff00"
        ></solid>
    <corners
        android:radius="10dp"
        ></corners>

</shape>

(2)在 shape_selected中

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
    >
    <solid
        android:color="#ff00ff"
        ></solid>
    <corners
        android:radius="10dp"
        ></corners>

</shape>

 

第四部

        在Adapter里面

public class Adapter extends PagerAdapter {
    private ArrayList<ImageView> initdata;

    public Adapter(ArrayList<ImageView> initdata) {
        this.initdata = initdata;
    }

    @Override
    public int getCount() {
        return initdata.size();
    }

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        container.addView(initdata.get(position));
        return initdata.get(position);
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        //super.destroyItem(container, position, object);
        container.removeView(initdata.get(position));
    }

 

 

 

转载于:https://my.oschina.net/u/3709181/blog/1560271

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值