Viewpager+Radiograp+Fragment连用时导航图片的切换

TabLayout+ViewPager Fragment 实现导航栏的切换,图片可更换颜色       先上图,看看是不是你们想要的效果 看了一堆的TabLayout的详解,里面都是实现最基本的TabLayout+ViewPager(只能有文字,没有图片的那种),最后参考各种文档,终于写出来了,本人菜鸟一枚,代码会尽可能的详细,适合新手哦 如果你遇到了问题,可以先看一下文章的最后,是否和我的问题是一样的,可以快速解决哦 1.首先创建的是MainActivity.clas... 阅读详情
1、在drawable 下  右键 New drawable resource file   起一个文件名 File Name 下面 Root element 选择 selector类型
(这里每一个RadioButton都需要引用一个,以上方今日头条为例,所以需要建4个)-----每个里边放你的一个RadioButton对应的一个红色点击的图片和未点击的白色图片

里边代码如下------例: 需要写与上面Radiobutton对应的个数,例我上面写了四个RadioButton  我这里也要写4个对应的selector

解释一下:参考 第一个<item android:state_checked="true" android:drawable="@drawable/yx2"/>--@drawable/yx2是选中时的图片
              第二个<item android:state_checked="true" android:drawable="@drawable/wx2"/>--@drawable/wx2是未选中时的图片

              第三个<item android:drawable="@drawable/yx2"/>--@drawable/wx2是默认的图片

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/ac1"/>
    <item android:state_checked="false" android:drawable="@drawable/ac0"/>
    <item android:drawable="@drawable/ac0"/>
</selector>

2、创建Fragment就省略了

3、主页面

    

public class MainActivity extends AppCompatActivity {

    private ViewPager mVp;
    private RadioButton mHomepager;
    private RadioButton mClasspager;
    private RadioButton mShoppingcarpager;
    private RadioButton mMypager;
    private RadioGroup radioGroup;
    private List<Fragment> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initDate();
        fragmentAdapter adapter = new fragmentAdapter(getSupportFragmentManager(), list);
        mVp.setAdapter(adapter);
    }
    private void initDate() {
        list = new ArrayList<>();
        list.add(new FragmentOne());
        list.add(new FragmentTwo());
        list.add(new FragmentThree());
        list.add(new FragmentFour());
    }
    private void initView() {
        mVp = (ViewPager) findViewById(R.id.vp);
        mHomepager = (RadioButton) findViewById(R.id.homepager);
        mClasspager = (RadioButton) findViewById(R.id.classpager);
        mShoppingcarpager = (RadioButton) findViewById(R.id.shoppingcarpager);
        mMypager = (RadioButton) findViewById(R.id.mypager);
        radioGroup = (RadioGroup) findViewById(R.id.rg);
       mVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
           @Override
           public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
           }
           @Override
           public void onPageSelected(int position) {
               switch (position){
                   case 0:
                       radioGroup.check(R.id.homepager);
                       break;
                   case 1:
                       radioGroup.check(R.id.classpager);
                       break;
                   case 2:
                       radioGroup.check(R.id.shoppingcarpager);
                       break;
                   case 3:
                       radioGroup.check(R.id.mypager);
                       break;
               }
           }
           @Override
           public void onPageScrollStateChanged(int state) {

           }
       });
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.homepager:
                        mVp.setCurrentItem(0, false);
                        break;
                    case R.id.classpager:
                        mVp.setCurrentItem(1, false);
                        break;
                    case R.id.shoppingcarpager:
                        mVp.setCurrentItem(2, false);
                        break;
                    case R.id.mypager:
                        mVp.setCurrentItem(3, false);
                        break;
                }
            }
        });
    }
    //适配器
    class fragmentAdapter extends FragmentPagerAdapter{
        public fragmentAdapter(FragmentManager fm, List<Fragment> list) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return list.get(position);
        }

        @Override
        public int getCount() {
            return list.size();
        }
    }
}



colors.xml中设置颜色为:

<color name="transparent">#00000000</color>



【扩展卡尔曼滤波器EKF】基于UWB雷达的SLAM能够在室内环境内映射自然点地标,并改善机器人定位(Matlab代码实现) 内容概要:本文档提供了名为“Plecs全桥LLC谐振变换器仿真模型”的资源,主要用于电力电子领域中LLC谐振变换器的建模与仿真研究。该模型基于Plecs软件平台构建,聚焦于全桥LLC拓扑结构,涵盖其工作原理、关键参数设计及动态性能仿真,帮助用户深入理解LLC谐振变换器在软开关、高效率功率转换方面的特性与实现方法。文档内容包括系统建模、主电路参数计算、控制策略实现以及仿真结果分析等部分,适用于高频高效电源变换器的研发与教学实践。; 适合人群:具备电力电子与电力系统基础知识,从事电源变换器设计、仿真与优化工作的工程师及高校研究生。; 使用场景及目标:① 掌握LLC谐振变换器的工作机理与Plecs仿真建模流程;② 学习全桥LLC拓扑的参数设计与软开关实现方法;③ 为高频高效DC-DC变换器的科研、课程设计或工程项目提供仿真基础和技术参考。; 阅读建议:建议结合电力电子技术教材与Plecs官方文档同步学习,重点理解谐振腔参数(如Lr、Cr、Lm)对增益特性与软开关的影响,并通过调整仿真参数验证不同工况下的系统响应,以加深对LLC变换器设计规律的理解。 立即下载

相关推荐

半桥LLC谐振DCDC变换器的设计与仿真(Simulink仿真实现)

内容概要:本文系统阐述了半桥LLC谐振DCDC变换器的设计与仿真方法,聚焦于其在Simulink环境下的建模、关键参数设计及闭环控制策略的实现。内容深入剖析了LLC谐振变换器的工作原理,包括谐振腔元件(Lr、Cr、Lm)的精确计算与优化方法,详细探讨了实现零电压开通(ZVS)等软开关技术的关键条件,并介绍了变频控制与恒压恒流双闭环控制逻辑的设计思路。通过构建完整的Simulink仿真模型,文章验证了系统在不同负载工况下的动态响应能力、高效率特性和良好的稳态性能,为理论分析提供了强有力的实践支撑。; 适合人群:具备电力电子技术基础理论知识和Simulink软件操作经验的电气工程、自动化及相关专业的本科高年级学生、研究生,以及从事开关电源、新能源变换器等电力电子设备研发的工程师。; 使用场景及目标:①深入理解LLC谐振变换器的核心工作机理与谐振参数的设计准则;②掌握在Simulink中搭建高保真度电力电子变换器仿真模型并实现复杂闭环控制的技术;③为高效率、高功率密度电源产品的研发提供理论指导、设计范例与仿真验证平台。; 阅读建议:建议读者结合文中的理论推导与仿真模型进行同步实践,重点动手调整谐振频率、观察ZVS实现过程,并反复调试PI控制器参数以优化系统的动态与稳态响应,从而深刻领悟LLC变换器的非线性动态特性和先进控制策略的精髓。

底部导航BottomNavigationView+ViewPager+Fragment

Android端采用底部导航栏的APP非常多,比如微信、微博、支付宝...等等,这也不能说是盲目学习iOS,毕竟好东西大家都可以用,各家操作系统也都在博采众长,互相学习。Android端的底部导航栏有着一套规范, 详情 。 这篇文章为大家带来 1.官方BottomNavigationView的使用方法 2.结合ViewPager、Fragment实现一个流行UI布局! 3.

xiaoyangsavvy的专栏 1万+

【文本分析学习】Anaconda+pytorch虚拟环境下的pycharm文本分析(含分词、词性标注、词形归一化、停用词、文本情感分析、词频、文本相似度,附数据代码) NLTK

文本分析学习之 Anadconda+pytorch虚拟环境下的pycharm文本分析(含分词、词性标注、词形归一化、停用词、文本情感分析、词频、文本相似度,附数据代码)

littlexmj的博客 2331

自定义RadioGroup 实现选择

先来张效果图 去不代码: package com.example.demo; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.gr

younger_android的博客 582

中国银行信息科技岗位笔试

收到笔试只剩四天了,收集的资料,后续会更新

weixin_46050242的博客 4592

快速理解STLink引脚图中复位引脚作用

深入讲解STLink引脚图中复位引脚的实际用途,帮助开发者快速掌握其在调试与下载过程中的关键作用,结合stlink引脚图理解更高效。

weixin_32324637的博客 1326

安卓ViewPager+RadioGroup实现多组图片滑动展示(每组图片不定量)

应公司项目需要,写了一个图集查看的功能,要求图片有分组,确定为6组,但是每个分组中图片的数量不确定,可多可少根据接口请求的数据来定,整个图集分组前后衔接,左右滑动可以查看所有图片,滑动到对应分组的图片,底部组别自动定位,点击组别可以切换至对应位置的图片,同时图片底下有几行文字主要是对每组图片的描述,所以随着组别的切换而改变,草图如下: 拿到这样的需求以后,我初步确定了实现方案,即用viewp

itbobby的专栏 1600

魔改xjar支持springboot3,

其实这里基本就没问题了,实际项目中只要把这个spring-core包从私仓中替换,项目加密也就没有太大的毛病,但是这样对于追求完美的我来说,方便性还差点。原因找到了,看了下springboot github的issue,官方确实变更了,原因是因为springboot2中的。xjar项目文档还是不错的,clone下来,跟着文档,很容易就测试并通过了我的测试项目,于是便推给其他同事使用了。方法,那么问题来了,为啥springboot2没问题,spring3读取出来的却又是加密的,这是为毛?

jioulongzi的专栏 1537

ProgressBar水平进度条设置

在XML的布局控件中添加          style="@style/Widget.AppCompat.ProgressBar.Horizontal"就完成水平进度条的设置Activity中设置 progressbar.setMax(100); 设置进度条的最大值 progressbar.setProgress(progress); 同步进度条进度

Key_p的博客 4434

2025小红书跳转卡片实战指南:从零搭建独立后台与自动化发卡系统

本文提供了一份2025年小红书跳转卡片的实战搭建指南,详细解析了独立后台系统的核心架构与自动化发卡流程。文章从零开始,手把手教你使用Node.js、Vue.js等技术栈构建包含后台管理、用户制卡中心与前端交互的完整系统,旨在帮助运营者实现合规引流,并掌握数据自主权与自动化运营能力。

weixin_29234423的博客 517

Claude Code Auto Memory 的 Storage Location,SAP ABAP 项目里的本地记忆仓库应该怎么理解

本文介绍了 SAP ABAP 项目中 Claude Code 的 auto memory 机制,重点探讨了其存储位置的设计原理。auto memory 不是存储在项目目录中,而是默认位于 ~/.claude/projects/<project>/memory/,其中 <project> 基于 Git 仓库路径推导,确保同一仓库下的所有工作目录和分支共享记忆。记忆目录包含入口文件 MEMORY.md(仅加载前 200 行)和详细主题文件,这种分层设计类似 CDS View 架构思想。文章还分析了按 Git 仓

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 100

购物车订单实现

UTils工具类APIService类public interface APIService {    @GET("product/getOrders?uid=71")    Observable order();    @GET("product/updateOrder")    Call update(@Query("uid") int uid,@Query("status") int sta

Key_p的博客 1341

2026年软考高级网络规划设计师第三版备考笔记

删除了所有已退出主流应用、行业淘汰的技术内容,如 HDLC、xDSL、WiMAX、HSRP/GLBP 等,让教材内容更聚焦当下一线网络工程实际场景,剔除无效考点。

鹿鸣天涯 1214

Android 开发启动时白屏或黑屏的最简单解决方法

一共两个步骤:1.在AndroidManifest文件中设置: &lt;activity android:name=".ui.SplashActivity" android:theme="@style/Theme.Splash" android:screenOrientation="portrait"&gt; ...

Key_p的博客 1028

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MVP模式从入门到精通

首先MVP 是从经典的MVC架构演变而来,那我们是不是要先说下何为MVC模式?  系统C/S(Client/Server)三层架构模型:   1)视图层(View):一般采用XML文件对应用的界面进行描述,使用的时候可以直接引入,极为方便,可以的大大缩短开发时间,也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的

Key_p的博客 938

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

购物车的简单实现

下面是购物车MVP效果的简单实现 首先是布局 这是Activity_main布局 这个是Activity_goods布局 这是Activity_car布局 这是rv_item_car布局 这是rv_item_goods布局 接下来就是各个类的代码 MainActivity类 import android.conten

Key_p的博客 618

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MVP+Rxjava+Retrofit+Fresco网络请求数据

数据解析

Key_p的博客 534

JSON解析

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSON

Key_p的博客 474

电商购物

以下是购物车的简单实现代码,希望对大家能起到一点作用 首先咱们先把布局完成 values中的attr布局 declare-styleable name="QuantityChooseView"> attr name="maxQuantity" format="integer"/> attr name="quantity" format="integer"/>

Key_p的博客 461

Recyclerview的介绍与使用

RecyclerView使用介绍 RecyclerView 是Android L版本中新添加的一个用来取代ListView的SDK,它的灵活性与可替代性比listview更好。接下来通过一系列的文章讲解如何使用RecyclerView,彻底抛弃ListView. 介绍 RecyclerView与ListView原理是类似的:都是仅仅维护少量的View并且可以展示大量的数据集。Recy

Key_p的博客 454

自定义View实现留声机

自定义ViewGramophoneView 类public class GramophoneView extends View { private int halfMeasureWidth; // 中间图片默认半径 private static final int DEFAULT_PICTURE_RADIUS = 400; // 唱片旋转默认速度,其实是通过每次旋转...

Key_p的博客 404

自定义Banner轮播图

下面是自定义Banner轮播图添加依赖compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'添加权限&lt;uses-permission android:name="android.permission.INTERNET"/&gt; &lt;uses-permission android:name="and...

Key_p的博客 397

ViewPager 剖析及使用

ViewPager的剖析及使用详解 ViewPager在开发中的使用频率非常的高,所以在此做个总结。 主要包括以下几方面: ViewPager的简介和作用ViewPager的适配器ViewPager的翻页动画ViewPager结合第三方库实现小圆点指示器效果基于ViewPager实现广告轮播控件 基础 1.ViewPager的简介和作用 ViewPager是

Key_p的博客 394

MVp

接下来和大家分享一下我使用MVP的项目流程: 首先是创建各个文件包:Activity、adapter、view、bean、model、okhttp、utils、presenter 接下来就是各个文件包中的使用: view包中的类的显示作用:创建接口并调用方法 public interface RecyView { void showRecy(RlvBean rb); //

Key_p的博客 328
上一篇: 自定义View实现留声机
下一篇: 调用系统照相机拍照与相册图片
Key_p
博客等级 码龄9年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值