小圆点的实现

1.概述 小圆点的运用,自定义的要比RadioGroup的好看的多、

2.思路 创建一个空的LinearLayout往里面添加自己定义好的圆形的imagesView

3.代码如下

布局

<?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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.guojinlong20170826.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:id="@+id/doc"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:gravity="center"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"></LinearLayout>

</RelativeLayout>
//自定义圆形的选中和没选中
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#0ff"/>
    <size android:width="20dp" android:height="20dp"/>
    <stroke android:color="#0ff" android:width="1dp"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#fff"/>
    <size android:width="10dp" android:height="10dp"/>
    <stroke android:color="#0ff" android:width="1dp"/>
</shape>
zmainactivity里
package com.example.guojinlong20170826;

import android.os.AsyncTask;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioGroup;

import com.bwei.guojinlong.Adapter.MyAdapter;
import com.bwei.guojinlong.bean.Data;
import com.bwei.guojinlong.utils.Getjson;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    ViewPager vp;
    LinearLayout doc;
    Data data;
    List<ImageView> list;
    List<ImageView> list_doc;
    Handler handler=new Handler();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initData();
    }

    private void initView() {
        vp= (ViewPager) findViewById(R.id.vp);
        doc= (LinearLayout) findViewById(R.id.doc);
        list=new ArrayList<>();
        list_doc=new ArrayList<>();
    }
	一个网络接口的数据源
    private void initData() {
        new AsyncTask<String,String,String>(){


            @Override
            protected String doInBackground(String... strings) {
                Gson gson=new Gson();
                data=gson.fromJson(Getjson.getData("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"),Data.class);

                return null;
            }

            @Override
            protected void onPostExecute(String s) {
                getImg();
                super.onPostExecute(s);
            }
        }.execute();


    }
    public void getImg() {
        if(data!=null&&data.getData().getComics().size()>0){
            for (int i = 0; i < data.getData().getComics().size(); i++) {
                ImageView img=new ImageView(this);
                img.setScaleType(ImageView.ScaleType.FIT_XY);
                ImageLoader.getInstance().displayImage(data.getData().getComics().get(i).getCover_image_url(),img);
                list.add(img);
            }
            MyAdapter adpter=new MyAdapter(list);
            vp.setAdapter(adpter);
            initDoc();
            vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                }

                @Override
                public void onPageSelected(int position) {
                    int index=position%list.size();
                    for (int i = 0; i < list.size(); i++) {
                        list_doc.get(i).setBackgroundResource(R.drawable.doc_uncheck);
                    }
                    list_doc.get(index).setBackgroundResource(R.drawable.doc_check);

                }

                @Override
                public void onPageScrollStateChanged(int state) {

                }
            });
        }


        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                int de=vp.getCurrentItem();
                de++;
                vp.setCurrentItem(de);
                handler.postDelayed(this,2000);
            }
        },2000);

    }
    public void initDoc() {
        if (data != null && data.getData().getComics().size() > 0) {
            for (int i = 0; i < data.getData().getComics().size(); i++) {
                ImageView img = new ImageView(this);
                LinearLayout.LayoutParams params = new RadioGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                params.rightMargin = 10;
                img.setLayoutParams(params);
                if (i == 0) {

                    img.setBackgroundResource(R.drawable.doc_check);
                } else {
                    img.setBackgroundResource(R.drawable.doc_uncheck);

                }
                doc.addView(img);
                list_doc.add(img);
            }

        }

    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值