안 드 로 이 드 의 가장 간단 한 라운드 맵 실현

5842 단어 Android
가장 간단 한 라운드 맵.
레 퍼 런 스http://www.cnblogs.com/xurui1995/p/5759371.html박문
xml 레이아웃



    

        

        

        

            

            
        
    

Drawable 아래 에 Drawable resource file 3 개 를 새로 만 듭 니 다.
bg_shape


    
    

bg_shape2


    
    

selector


    
    

다음은 전체 코드 입 니 다.
package com.example.playpicture;

import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;

import java.util.ArrayList;

/**
 *  Activity                     
 */
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{
    private ViewPager vp;
    private  int[] imas;
    private LinearLayout ll;
    private ArrayList imaList;
    private Boolean flag;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //     
        initViews();
        //  
        initData();

        //   
        initAdapter();
        flag=true;
        //      
        new Thread(new Runnable() {
            @Override
            public void run() {

                while (flag) {
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    //    MainActivity.this    context  
                    MainActivity.this.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            vp.setCurrentItem(vp.getCurrentItem() + 1);
                        }
                    });
                }
            }
        }).start();
    }

    private void initAdapter() {
        ll.getChildAt(0).setEnabled(true);
        vp.setAdapter(new MyAdapter());
        vp.setCurrentItem(Integer.MAX_VALUE/2+2);//     %5 0    ,         0 item  
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        flag=false;
    }

    private void initData() {
    }

    private void initViews() {
        vp = (ViewPager) findViewById(R.id.vp);
        vp.setOnPageChangeListener(this);
        ll= (LinearLayout) findViewById(R.id.point_container);
        //    ,              
        imas = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, R.drawable.pic4, R.drawable.pic5,};
        ImageView iv;
        imaList = new ArrayList();
        View pointview;
        for (int i = 0; i < imas.length; i++) {
            iv = new ImageView(this);
            iv.setImageResource(imas[i]);
            imaList.add(iv);

            //    
            pointview =new View(this);
            pointview.setEnabled(false);
            pointview.setBackgroundResource(R.drawable.selector);
            LinearLayout.LayoutParams params =new LinearLayout.LayoutParams(15,15);
            //params.gravity= Gravity.CENTER;
            if(i!=0)
                params.leftMargin=10;
            ll.addView(pointview,
                    params );
        }

    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        for(int i=0;i

이것 이 바로 가장 간단 한 라운드 맵 실현 이다.

좋은 웹페이지 즐겨찾기