カスタムマルチキャストマップと小さなドットコントロールを簡単に実現

5023 ワード

Androidの開発では、さまざまな技術的な難題に直面するのは避けられない.いくつかの比較的珍しい面白いいくつかの効果.これらの効果はありません.so、私たちは自分でカスタムコントロールを書いて、私たちのニーズを満たすしかありません.
轮播図のコントロール、ネット上で各种のコントロールがあることができることを信じて、しかし、根拠に基づいて、少し会の少しの态度を学んで、コードを発表して、参考に供します
じょうふごう
まず、ビューレイアウト


    
        
    
    

    


もちろん、小さなドットは自分で描く必要があります
選択した状態の小さな点



    
    
    
    


選択されていない状態の小さなドット



    
    
    
    

以下は選択状態を判断するコード



    
    
    
    

カスタムコントロールのコードです
public class Banner extends RelativeLayout {
    private MyHandler myHandler = new MyHandler();
    //     ,      .    
    private static LinearLayout ll;
    private static ViewPager vp;
    private static List imageViews = new ArrayList<>();//     
    private static List primes = new ArrayList<>();//      
    private static Context myContext;
    
    /**
     *         
     */
    public Banner(Context context) {
        this(context,null);

    }

    public Banner(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public Banner(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        myContext = context;
        //      
        View view = View.inflate(context,R.layout.banner_layout,this);
        //    
        vp = view.findViewById(R.id.vp);
        ll = view.findViewById(R.id.ll);
    }
    //        
    public void setAdapter(PagerAdapter pagerAdapter){

        vp.setAdapter(pagerAdapter);
        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            //            
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }
            //          
            @Override
            public void onPageSelected(int position) {
                position = position%primes.size();
                for (int i=0; i list){
            //              
            imageViews = list;
            //     ,             
            for(int i=0;i
このコントロールを使用するコードの例を次に示します.
//         
        List data1 = getAdBean.getData();
        //        (  )   
        list = new ArrayList();
        //         data1            
        for (int i=0;i
よし、これは簡単なカスタムコントロールで、マルチキャスト図+小さなドットを実現します.