直播软件开发,同一分类下仅状态栏切换有无特效两个版本

直播软件开发,同一分类下仅状态栏切换有无特效两个版本实现的相关代码

1、首先是ViewPager无特效效果

这个是ViewPager定义时最初的切换样式

部分布局

 

1
<br><com.google.android.material.tabs.TabLayout<br>        android:id="@+id/record_tabs"<br>        android:layout_width="wrap_content"<br>        android:layout_height="match_parent"<br>        android:layout_centerHorizontal="true"<br>        app:tabGravity="center"<br>        app:tabMode="fixed"<br>        app:tabTextColor="@color/grey_7D7D7D"<br>        app:tabSelectedTextColor="@color/black"<br>        app:tabIndicatorColor="@color/black"/><br></RelativeLayout><br><androidx.viewpager.widget.ViewPager<br>    android:id="@+id/record_vp"<br>    android:layout_width="match_parent"<br>    android:layout_height="match_parent"/><br>public class RecordPagerAdapter extends FragmentPagerAdapter {<br>    List<Fragment> fragmentList;<br>    String[]titles = {"界面1","界面2"};<br>    public RecordPagerAdapter(@NonNull FragmentManager fm, List<Fragment>fragmentList) {<br>        super(fm);<br>        this.fragmentList = fragmentList;<br>    }<br>    @NonNull<br>    @Override<br>    public Fragment getItem(int position) {<br>        return fragmentList.get(position);<br>    }<br>    @Override<br>    public int getCount() {<br>        return fragmentList.size();<br>    }<br>    @Nullable<br>    @Override<br>    public CharSequence getPageTitle(int position) {<br>        return titles[position];<br>    }<br>}<br>创建两个空白的Fragment <br>设置ViewPager加载页面<br>private void initPager() {<br>        List<Fragment> fragmentList = new ArrayList<>();<br>        OutcomeFragment outFrag = new OutcomeFragment(); <br>        IncomeFragment inFrag = new IncomeFragment(); <br>        fragmentList.add(outFrag);<br>        fragmentList.add(inFrag);<br>//        创建适配器<br>        RecordPagerAdapter pagerAdapter = new RecordPagerAdapter(getSupportFragmentManager(), fragmentList);<br>//        设置适配器<br>        viewPager.setAdapter(pagerAdapter);<br>        //将TabLayout和ViwePager进行关联<br>        tabLayout.setupWithViewPager(viewPager);<br>    }

2.自定义ViewPager切换特效效果

 

1
public class RotateDownPageTransformer implements ViewPager.PageTransformer<br>{<br>    private static final float ROT_MAX = 20.0f;<br>    private float mRot;<br>    public void transformPage(View view, float position) {<br>        if (position < -1) {<br>            ViewHelper.setRotation(view, 0);<br>        } else if (position <= 1) {<br>            if (position < 0) {<br>                /**<br>                 * mRot 旋转的角度<br>                 * 转动的中心(ViewHelper.setPivotX, ViewHelper.setPivotY)<br>                 */<br>                mRot = (ROT_MAX * position);<br>                ViewHelper.setPivotX(view, view.getMeasuredWidth() * 0.5f);<br>                ViewHelper.setPivotY(view, view.getMeasuredHeight());<br>                ViewHelper.setRotation(view, mRot);<br>            } else {<br>                mRot = (ROT_MAX * position);<br>                ViewHelper.setPivotX(view, view.getMeasuredWidth() * 0.5f);<br>                ViewHelper.setPivotY(view, view.getMeasuredHeight());<br>                ViewHelper.setRotation(view, mRot);<br>            }<br>        } else {<br>            ViewHelper.setRotation(view, 0);<br>        }<br>    }<br>}

 

以上就是直播软件开发,同一分类下仅状态栏切换有无特效两个版本实现的相关代码, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示