day27 banner以及FlycoTabLayout

Banner 实现轮播图

导入依赖

implementation 'com.youth.banner:banner:1.4.10'

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".MainActivity">


    <com.youth.banner.Banner
        android:layout_width="match_parent"
        android:layout_height="230dp"
        android:id="@+id/my_Banner">

    </com.youth.banner.Banner>

</LinearLayout>

activity

public class MainActivity extends AppCompatActivity {

    Banner banner;
    ArrayList<String> imgUrl = new ArrayList<>();
    ArrayList<String> title = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        banner = findViewById(R.id.my_Banner);
        banner.setOnBannerListener(new OnBannerListener() {
            @Override
            public void OnBannerClick(int position) {
                Toast.makeText(MainActivity.this, ""+position, Toast.LENGTH_SHORT).show();
            }
        });
        getData();
    }

    private void getData() {
        OkGo.<String>get("http://vueshop.glbuys.com/api/home/index/slide?token=1ec949a15fb709370f").execute(new StringCallback() {
            @Override
            public void onSuccess(Response<String> response) {
                String body = response.body();
                try {
                    JSONObject jsonObject = new JSONObject(body);
                    JSONArray data = jsonObject.getJSONArray("data");
                    for (int i = 0; i < data.length(); i++){
                        JSONObject jsonObject1 = data.getJSONObject(i);
                        String image = jsonObject1.getString("image");
                        String t = jsonObject1.getString("title");
                        imgUrl.add("http:"+image);
                        title.add(t);
                    }
                    banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);//数字加标题
                    banner.setImages(imgUrl);
                    banner.setBannerTitles(title);
                    banner.setImageLoader(new ImageLoader() {
                        @Override
                        public void displayImage(Context context, Object path, ImageView imageView) {
                            Glide.with(context).load((String) path).into(imageView);
                        }
                    });
                    banner.setDelayTime(1500);//每隔1.5秒自动走一次
                    banner.start();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

FlycoTabLayout

更多介绍

导入依赖
implementation 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.2@aar'

主布局

<?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=".MainActivity">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/frame_layout"
        android:layout_above="@id/common_tab_layout">

    </FrameLayout>
    <com.flyco.tablayout.CommonTabLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:id="@+id/common_tab_layout"
        app:tl_textSelectColor="#2196F3"
        app:tl_textUnselectColor="#272525"
        android:scrollbarStyle="@null">

    </com.flyco.tablayout.CommonTabLayout>

</RelativeLayout>

fragment布局略。。。

CustomTabEntity接口的实现类

public class MyBottomTab implements CustomTabEntity {

    private String title;
    private int selected;
    private int unselected;

    public MyBottomTab(String title, int selected, int unselected) {
        this.title = title;
        this.selected = selected;
        this.unselected = unselected;
    }

    @Override
    public String getTabTitle() {
        return title;
    }

    @Override
    public int getTabSelectedIcon() {
        return selected;
    }

    @Override
    public int getTabUnselectedIcon() {
        return unselected;
    }
}

activity

public class MainActivity extends AppCompatActivity {

    CommonTabLayout commonTabLayout;
    ArrayList<CustomTabEntity> arrayList = new ArrayList<>();
    MyFragment01 myFragment01;
    MyFragment02 myFragment02;
    MyFragment03 myFragment03;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        commonTabLayout = findViewById(R.id.common_tab_layout);
        arrayList.add(new MyBottomTab("首页",R.mipmap.shouye_selected,R.mipmap.shouye_unselected));
        arrayList.add(new MyBottomTab("音乐",R.mipmap.faxian_selected,R.mipmap.faxian_unselected));
        arrayList.add(new MyBottomTab("我的",R.mipmap.wode_selected,R.mipmap.wode_unselected));
        commonTabLayout.setTabData(arrayList);
        myFragment01 = new MyFragment01();
        myFragment02 = new MyFragment02();
        myFragment03 = new MyFragment03();
        getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,myFragment01).commit();
        commonTabLayout.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelect(int position) {
                if (position == 0){
                    getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,myFragment01).commit();
                }else if (position == 1){
                    getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,myFragment02).commit();
                }else if (position == 2){
                    getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout,myFragment03).commit();
                }
                commonTabLayout.hideMsg(position);
            }

            @Override
            public void onTabReselect(int position) {

            }
        });
        commonTabLayout.showDot(2);//显示小红点
        commonTabLayout.showMsg(1,100);//显示未读消息

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值