创建alpha时需要勾选 ,然后删除xml配置infilter
Alpha布局
android:id="@+id/alpha"
android:background="@drawable/timg"
AlphaActivity
package bwie.com.toutiao2.ui.activity;
import android.content.Intent;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import bwie.com.toutiao2.R;
import bwie.com.toutiao2.base.BaseActivity;
public class AlphaActivity extends BaseActivity implements Animation.AnimationListener {
private View alpha;
@Override
protected void setOnClickListen() {
}
@Override
protected void initData() {
AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
alphaAnimation.setDuration(2000);
alphaAnimation.setAnimationListener(this);
alpha.setAnimation(alphaAnimation);
}
@Override
protected void initView() {
alpha = findViewById(R.id.alpha);
}
@Override
protected void setQuanPing() {
quanping();
}
@Override
protected int initLayout() {
return R.layout.activity_alpha;
}
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
startActivity(new Intent(AlphaActivity.this,MainActivity.class));
finish();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
}
//BaseActivity
package bwie.com.toutiao2.base;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.Window;
import android.view.WindowManager;
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
private void init() {
setQuanPing();
setContentView(initLayout());
initView();
initData();
setOnClickListen();
}
protected abstract void setOnClickListen();
protected abstract void initData();
protected abstract void initView();
protected abstract void setQuanPing();
protected abstract int initLayout();
protected void quanping(){
requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏
}
}
//跳转到MainActivity
mainactivity布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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"
android:id="@+id/draw_layout"
tools:context=".ui.activity.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@color/colorPrimaryDark"
>
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/iv"
android:src="@mipmap/ic_launcher_round"
android:layout_margin="5dp"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="标题"
android:textSize="20dp"
android:gravity="center"
android:layout_marginRight="30dp"
android:textColor="#ffff"
/>
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/frag_layout"
></FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@color/colorPrimary"
>
<RadioGroup
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/radio_group"
android:layout_weight="1"
android:orientation="horizontal"
>
<RadioButton
android:text="新闻"
android:id="@+id/rb1"
style="@style/MyStyle"
/>
<RadioButton
android:text="社会"
android:id="@+id/rb2"
style="@style/MyStyle"
/>
<RadioButton
android:text="热点"
android:id="@+id/rb3"
style="@style/MyStyle"
/>
<RadioButton
android:text="我的"
android:id="@+id/rb4"
style="@style/MyStyle"
/>
</RadioGroup>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="380dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/colorPrimary"
>
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher_round"
/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
//布局里面 有tablayout 需要导包
MainActivity页面
package bwie.com.toutiao2.ui.activity;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RadioGroup;
import java.util.ArrayList;
import bwie.com.toutiao2.R;
import bwie.com.toutiao2.base.BaseActivity;
import bwie.com.toutiao2.ui.fragment.nav.Fragment1;
import bwie.com.toutiao2.ui.fragment.nav.Fragment2;
import bwie.com.toutiao2.ui.fragment.nav.Fragment3;
import bwie.com.toutiao2.ui.fragment.nav.Fragment4;
public class MainActivity extends BaseActivity implements View.OnClickListener {
private DrawerLayout draw_layout;
private RadioGroup radio_group;
private FrameLayout frag_layout;
private ImageView iv;
private ArrayList<Fragment> list;
@Override
protected void setOnClickListen() {
iv.setOnClickListener(this);
draw_layout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
View content = draw_layout.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) {
}
});
radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i){
case R.id.rb1:
tihuan(new Fragment1());
break;
case R.id.rb2:
tihuan(new Fragment2());
break;
case R.id.rb3:
tihuan(new Fragment3());
break;
case R.id.rb4:
tihuan(new Fragment4());
break;
}
}
});
}
private void tihuan(Fragment fragment) {
getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout,fragment).commit();
}
@Override
protected void initData() {
radio_group.check(R.id.rb1);
tihuan(new Fragment1());
}
@Override
protected void initView() {
draw_layout = findViewById(R.id.draw_layout);
radio_group = findViewById(R.id.radio_group);
frag_layout = findViewById(R.id.frag_layout);
iv = findViewById(R.id.iv);
}
@Override
protected void setQuanPing() {
}
@Override
protected int initLayout() {
return R.layout.activity_main;
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.iv:
if (draw_layout.isDrawerOpen(Gravity.START)){
draw_layout.closeDrawer(Gravity.START);
}else {
draw_layout.openDrawer(Gravity.START);
}
break;
}
}
}
创建4个fragment 替换了
fragment1页面布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
tools:context=".ui.fragment.nav.Fragment1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
>
<android.support.design.widget.TabLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:id="@+id/tab"
></android.support.design.widget.TabLayout>
<ImageView
android:layout_width="50dp"
android:layout_height="match_parent"
android:id="@+id/add"
android:src="@drawable/add"
/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_pager"
></android.support.v4.view.ViewPager>
</LinearLayout>
基类BaseFragment
package bwie.com.toutiao2.base;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return init(inflater,container);
}
protected abstract View init(LayoutInflater inflater, ViewGroup container);
}
fragment1 页面设置
package bwie.com.toutiao2.ui.fragment.nav;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.ArrayList;
import bwie.com.toutiao2.R;
import bwie.com.toutiao2.adapter.MyFragmentAdapter;
import bwie.com.toutiao2.base.BaseFragment;
import bwie.com.toutiao2.ui.activity.PindaoActivity;
import bwie.com.toutiao2.ui.fragment.nav.news.FragmentA;
import bwie.com.toutiao2.ui.fragment.nav.news.FragmentB;
import bwie.com.toutiao2.ui.fragment.nav.news.FragmentC;
/**
* A simple {@link Fragment} subclass.
*/
public class Fragment1 extends BaseFragment implements View.OnClickListener {
//private String[] titles={"少儿","河北","河南"};
private TabLayout tab;
private ViewPager view_pager;
private ArrayList<Fragment> list;
private ArrayList<String> tabs;
private ImageView iv_add;
public Fragment1() {
// Required empty public constructor
}
@Override
protected View init(LayoutInflater inflater, ViewGroup container) {
View view = inflater.inflate(R.layout.fragment_fragment1, container, false);
tab = view.findViewById(R.id.tab);
view_pager = view.findViewById(R.id.view_pager);
iv_add = view.findViewById(R.id.add);
//监听
iv_add.setOnClickListener(this);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//创建tabs集合
// tab.setTabMode(TabLayout.MODE_SCROLLABLE);
tabs = new ArrayList<>();
tabs.add("少儿");
tabs.add("河北");
tabs.add("河南");
tab.addTab(tab.newTab().setText(tabs.get(0)));
tab.addTab(tab.newTab().setText(tabs.get(1)));
tab.addTab(tab.newTab().setText(tabs.get(2)));
//创建集合
list = new ArrayList<>();
list.add(new FragmentA());
list.add(new FragmentB());
list.add(new FragmentC());
//创建适配器
MyFragmentAdapter adapter = new MyFragmentAdapter(getChildFragmentManager(), list,tabs);
//设置适配器
view_pager.setAdapter(adapter);
tab.setupWithViewPager(view_pager);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.add:
startActivity(new Intent(getActivity(),PindaoActivity.class));
break;
}
}
}
MyFragment适配器
package bwie.com.toutiao2.adapter;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
public class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> list;
private List<String> tabs;
public MyFragmentAdapter(FragmentManager fm, List<Fragment> list, List<String> tabs) {
super(fm);
this.list = list;
this.tabs = tabs;
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabs.get(position);
}
}
频道管理页面布局
<?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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.activity.PindaoActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimary"
>
<ImageView
android:padding="10dp"
android:layout_width="50dp"
android:layout_height="match_parent"
android:src="@drawable/back"
android:id="@+id/iv_back"
/>
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="频道管理"
android:gravity="center"
android:textSize="20sp"
android:textColor="#fff"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="编辑"
android:textColor="#fff"
android:id="@+id/tv_edit"
/>
</LinearLayout>
<!-- 拷贝 频道管理-->
<com.bawei.channelmanager.ui.ChannelView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/channel_view"
></com.bawei.channelmanager.ui.ChannelView>
</LinearLayout>
这个页面跳转导频道管理
package bwie.com.toutiao2.ui.activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
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 bwie.com.toutiao2.R;
public class PindaoActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView iv_back;
private TextView tv_edit;
private ChannelView channel_view;
// 我的频道数据集合
private List<ChannelBean> moreChannelBeans = new ArrayList<>();
// 更多频道数据集合
private List<ChannelBean> channelBeans = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pindao);
//初始化控件
iv_back = findViewById(R.id.iv_back);
tv_edit = findViewById(R.id.tv_edit);
channel_view = findViewById(R.id.channel_view);
channel_view.showDefaultHeadView(false); // 设置隐藏默认的HeadView
channel_view.showDefaultMoreView(false); // 设置隐藏默认的MoreView
channel_view.addHead(LayoutInflater.from(this).inflate(R.layout.mychanel, null, false)); // 添加自定义的head
channel_view.addMore(LayoutInflater.from(this).inflate(R.layout.chanel_footer, null, false)); // 添加自定义的more
tv_edit.setOnClickListener(this);
iv_back.setOnClickListener(this);
//假数据
for (int i = 0; i < 20; i++) {
if (i % 2 == 0) {
channelBeans.add(new ChannelBean("频道" + i, i, "http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1", true));
} else {
moreChannelBeans.add(new ChannelBean("垃圾" + i, i, "http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1", false));
}
}
channel_view.init(channelBeans, moreChannelBeans, new ChannelView.ChannelCallback() {
@Override
public void onMyChannelRemove(ChannelBean channelBean) {
}
@Override
public void moMoreChannelRemove(ChannelBean channelBean) {
}
});
}
private boolean flag;
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.iv_back:
finish();
break;
case R.id.tv_edit:
//编辑
if (!flag){
tv_edit.setText("完成");
}else {
tv_edit.setText("编辑");
}
channel_view.changeMyChannelState();
break;
}
}
}
//频道管理中 头布局 和脚 自己写