简单实现界面切换并且将radioButton图片缩小

public class Home_Activity extends AppCompatActivity {

    private RadioButton rb1;
    private RadioButton rb2;
    private RadioButton rb3;
    private RadioButton rb4;
    private RadioButton rb5;
    private RadioGroup rg1;
    private FrameLayout fl1;
    private ArrayList<Fragment> list;

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

    private void initView() {
        rb1 = (RadioButton) findViewById(R.id.rb1);
        rb2 = (RadioButton) findViewById(R.id.rb2);
        rb3 = (RadioButton) findViewById(R.id.rb3);
        rb4 = (RadioButton) findViewById(R.id.rb4);
        rb5 = (RadioButton) findViewById(R.id.rb5);
        rg1 = (RadioGroup) findViewById(R.id.rg1);
        fl1 = (FrameLayout) findViewById(R.id.fl1);
        list=new ArrayList<>();
        list.add(new AFragment());
        list.add(new BFragment());
        list.add(new CFragment());
        list.add(new DFragment());
        list.add(new EFragment());
        rg1.check(R.id.rb1);
        getview();
        switchFragment(0);
        rg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
                switch (checkedId){
                    case R.id.rb1:
                        switchFragment(0);
                        rb1.setTextColor(Color.BLUE);
                        rb2.setTextColor(Color.GRAY);
                        rb3.setTextColor(Color.GRAY);
                        rb4.setTextColor(Color.GRAY);
                        rb5.setTextColor(Color.GRAY);
                        break;
                    case R.id.rb2:
                        switchFragment(1);
                        rb2.setTextColor(Color.BLUE);
                        rb1.setTextColor(Color.GRAY);
                        rb3.setTextColor(Color.GRAY);
                        rb4.setTextColor(Color.GRAY);
                        rb5.setTextColor(Color.GRAY);
                        break;
                    case R.id.rb3:
                        switchFragment(2);
                        rb3.setTextColor(Color.BLUE);
                        rb2.setTextColor(Color.GRAY);
                        rb1.setTextColor(Color.GRAY);
                        rb4.setTextColor(Color.GRAY);
                        rb5.setTextColor(Color.GRAY);
                        break;
                    case R.id.rb4:
                        switchFragment(3);
                        rb4.setTextColor(Color.BLUE);
                        rb2.setTextColor(Color.GRAY);
                        rb3.setTextColor(Color.GRAY);
                        rb1.setTextColor(Color.GRAY);
                        rb5.setTextColor(Color.GRAY);
                        break;
                    case R.id.rb5:
                        switchFragment(4);
                        rb5.setTextColor(Color.BLUE);
                        rb2.setTextColor(Color.GRAY);
                        rb3.setTextColor(Color.GRAY);
                        rb4.setTextColor(Color.GRAY);
                        rb1.setTextColor(Color.GRAY);
                        break;

                }
            }
        });
    }

    private void switchFragment(int position) {
//开启事务
        FragmentTransaction fragmentTransaction =
                getSupportFragmentManager().beginTransaction();
        //遍历集合
        for (int i = 0; i <list.size() ; i++) {
            Fragment fragment = list.get(i);
            if (i==position){
                //显示fragment
                if (null !=fragment) {
                    if (fragment.isAdded()){
                        //如果这个fragment已经被事务添加,显示
                        fragmentTransaction.show(fragment);
                    }else{
                        //如果这个fragment没有被事务添加过,添加
                        fragmentTransaction.add(R.id.fl1,fragment);
                    }
                }
            }else{
                //隐藏fragment
                if (null != fragment) {
                    if (fragment.isAdded()){
                        //如果这个fragment已经被事务添加,隐藏
                        fragmentTransaction.hide(fragment);
                    }
                }
            }
        }
        //提交事务
        fragmentTransaction.commit();
    }

    public void getview() {
        //定义底部标签图片大小和位置
        Drawable drawable_news = getResources().getDrawable(R.drawable.af_t1);
        //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
        drawable_news.setBounds(0, 0, 45, 45);
        //设置图片在文字的哪个方向
        rb1.setCompoundDrawables(null, drawable_news, null, null);

        //定义底部标签图片大小和位置
        Drawable drawable_live = getResources().getDrawable(R.drawable.af_t2);
        //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
        drawable_live.setBounds(0, 0, 45, 45);
        //设置图片在文字的哪个方向
        rb2.setCompoundDrawables(null, drawable_live, null, null);

        //定义底部标签图片大小和位置
        Drawable drawable_tuijian = getResources().getDrawable(R.drawable.af_t3);
        //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
        drawable_tuijian.setBounds(0, 0, 45, 45);
        //设置图片在文字的哪个方向
        rb3.setCompoundDrawables(null, drawable_tuijian, null, null);

        //定义底部标签图片大小和位置
        Drawable drawable_me = getResources().getDrawable(R.drawable.af_t4);
        //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
        drawable_me.setBounds(0, 0, 45, 45);
        //设置图片在文字的哪个方向
        rb4.setCompoundDrawables(null, drawable_me, null, null);
        //定义底部标签图片大小和位置

        Drawable drawable_zi = getResources().getDrawable(R.drawable.af_t5);
        //当这个图片被绘制时,给他绑定一个矩形 ltrb规定这个矩形
        drawable_zi.setBounds(0, 0, 45, 45);
        //设置图片在文字的哪个方向
        rb5.setCompoundDrawables(null, drawable_zi, null, null);
    }
}
 
 
 
 
//布局
<Framlayou></Framlayout>
<RadioGroup></RadioGroup>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值