闪屏页面 侧拉 频道

//闪屏

package cn.zhaoliang5156.toutiao1630a.ui.fragment.activity;

import android.content.Intent;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.RelativeLayout;

import cn.zhaoliang5156.toutiao1630a.R;
import cn.zhaoliang5156.toutiao1630a.base.BaseActivity;

/**
 * 闪屏页面
 *
 * @author zhaoliang
 * @version 1.0
 * @create 2018/7/24
 */
public class SplashActivity extends BaseActivity implements Animation.AnimationListener {

    // 渐变动画
    private AlphaAnimation alphaAnimation;
    // 跟布局
    private RelativeLayout rlSplash;

    @Override
    protected void setOnClickLisener() {

    }

    @Override
    protected void initData() {
        alphaAnimation = new AlphaAnimation(0, 1);
        alphaAnimation.setDuration(2000);
        alphaAnimation.setAnimationListener(this);

        rlSplash.startAnimation(alphaAnimation);
    }

    @Override
    protected void findView() {
        rlSplash = findViewById(R.id.rl_splash);
    }

    @Override
    protected void setFullScreen() {
        fullScreen();
    }

    @Override
    protected int initLayout() {
        return R.layout.activity_splash;
    }

    @Override
    public void onAnimationStart(Animation animation) {

    }

    @Override
    public void onAnimationEnd(Animation animation) {
        toMain();
    }

    /**
     * 跳转到主界面
     */
    private void toMain() {
        startActivity(new Intent(this, MainActivity.class));
        finish();
    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }
}

//侧拉

package cn.zhaoliang5156.toutiao1630a.ui.fragment.activity;

import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RadioGroup;

import cn.zhaoliang5156.toutiao1630a.R;
import cn.zhaoliang5156.toutiao1630a.base.BaseActivity;
import cn.zhaoliang5156.toutiao1630a.ui.fragment.nav.NavFourFragment;
import cn.zhaoliang5156.toutiao1630a.ui.fragment.nav.NavOneFragment;
import cn.zhaoliang5156.toutiao1630a.ui.fragment.nav.NavThreeFragment;
import cn.zhaoliang5156.toutiao1630a.ui.fragment.nav.NavTwoFragment;

/**
 * 程序首页面
 *
 * @author zhaoliang
 * @version 1.0
 * @create 2018/7/24
 */
public class MainActivity extends BaseActivity implements View.OnClickListener {

    private static final String TAG = MainActivity.class.getSimpleName();
    private ImageView ivHead;

    // 侧滑菜单
    private DrawerLayout drawerLayout;

    // 主内容区域
    private FrameLayout flContainer;
    // 底部导航
    private RadioGroup navRadioGroup;

    @Override
    protected void setOnClickLisener() {
        ivHead.setOnClickListener(this);
        drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
                Log.i(TAG, "===:" + slideOffset);
                //滑动过程中不断回调 slideOffset:0~1
                View content = drawerLayout.getChildAt(0);
                float scale = 1 - slideOffset;//1~0
                content.setTranslationX(drawerView.getMeasuredWidth() * (1 - scale));//0~width
            }

            @Override
            public void onDrawerOpened(@NonNull View drawerView) {

            }

            @Override
            public void onDrawerClosed(@NonNull View drawerView) {

            }

            @Override
            public void onDrawerStateChanged(int newState) {

            }
        });

        navRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.rb_nav_one:
                        changePager(new NavOneFragment());
                        break;
                    case R.id.rb_nav_two:
                        changePager(new NavTwoFragment());
                        break;
                    case R.id.rb_nav_three:
                        changePager(new NavThreeFragment());
                        break;
                    case R.id.rb_nav_four:
                        changePager(new NavFourFragment());
                        break;
                }
            }
        });
    }

    /**
     * 改变页面
     *
     * @param fragment
     */
    private void changePager(Fragment fragment) {
        getSupportFragmentManager().beginTransaction().replace(R.id.fl_container, fragment).commit();
    }

    @Override
    protected void initData() {
        // 选中第一个页面
        navRadioGroup.check(R.id.rb_nav_one);
    }

    @Override
    protected void findView() {
        ivHead = findViewById(R.id.iv_head);
        drawerLayout = findViewById(R.id.draw_layout);
        flContainer = findViewById(R.id.fl_container);
        navRadioGroup = findViewById(R.id.rg_nav);
    }

    @Override
    protected void setFullScreen() {

    }

    @Override
    protected int initLayout() {
        return R.layout.activity_main;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            // 点击头像 展开侧滑
            case R.id.iv_head:
                if (drawerLayout.isDrawerOpen(Gravity.START)) {
                    drawerLayout.closeDrawer(Gravity.START);
                } else {
                    drawerLayout.openDrawer(Gravity.START);
                }
                break;
        }
    }
}

//频道

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorPrimary">

        <ImageView
            android:id="@+id/iv_image"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:padding="10dp"
            android:src="@drawable/ic_arrow_back_black_24dp" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="频道管理"
            android:textAppearance="@android:style/TextAppearance.StatusBar.Title"
            android:textColor="@android:color/white" />

        <TextView
            android:id="@+id/tv_edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:text="编辑"
            android:textColor="@android:color/white" />
    </LinearLayout>

    <com.bawei.channelmanager.ui.ChannelView
        android:id="@+id/channel_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>
package cn.zhaoliang5156.toutiao1630a.ui.fragment.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.bawei.channelmanager.bean.ChannelBean;
import com.bawei.channelmanager.ui.ChannelView;

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

import cn.zhaoliang5156.toutiao1630a.R;

/**
 * 频道Activity
 *
 * @author zhaoliang
 * @version 1.0
 * @create 2018/7/26
 */
public class ChannelActivity extends AppCompatActivity implements View.OnClickListener {

    private ImageView ivImage;
    private TextView tvEdit;
    private ChannelView channelView;

    // 存放频道的List
    private List<ChannelBean> loveChannel = new ArrayList<>();
    private List<ChannelBean> moreChannel = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_channel);

        ivImage = findViewById(R.id.iv_image);
        tvEdit = findViewById(R.id.tv_edit);
        channelView = findViewById(R.id.channel_view);

        ivImage.setOnClickListener(this);
        tvEdit.setOnClickListener(this);

        channelView.addHead(View.inflate(this, R.layout.channel_head, null));
        channelView.addMore(View.inflate(this, R.layout.channel_more, null));

        // 初始化Channel 数据
        for (int i = 0; i < 20; i++) {
            if (i % 2 == 0) {
                loveChannel.add(new ChannelBean("娱乐" + i, i, "http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1", true));
            } else {
                moreChannel.add(new ChannelBean("垃圾" + i, i, "http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1", false));
            }
        }

        // channelView 的初始化
        channelView.init(loveChannel, moreChannel, new ChannelView.ChannelCallback() {
            @Override
            public void onMyChannelRemove(ChannelBean channelBean) {

            }

            @Override
            public void moMoreChannelRemove(ChannelBean channelBean) {

            }
        });
    }

    private boolean channelState;

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.iv_image:
                finish();
                break;
            case R.id.tv_edit:
                if (!channelState) {
                    tvEdit.setText("完成");
                } else {
                    tvEdit.setText("编辑");
                }
                channelView.changeMyChannelState();
                channelState = !channelState;
                break;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42535851/article/details/81220990