Android 底部导航RadioButton动态改变图片样式

本文介绍了在老项目中使用RadioButton + Fragment构建底部导航,如何通过Glide转换图片Url为Drawable并创建selector实现动态改变底部导航图标的样式。在解决过程中遇到了因Glide异步加载导致的问题,通过引入RxJava2确保图标加载顺序,最终成功实现需求。
摘要由CSDN通过智能技术生成

公司的老项目底部导航使用的是RadioButton + Fragment框架,最近有个新需求需要动态改变底部导航的样式,搜了很多文章都不太理想。最后就在准备放弃的时候,想到了Glide 可以把图片Url转为Drawable,拿到Drawable 后用代码写个selector,然后给RadioButton设置上去就行了,准备就绪,开干。

 /**
     * 设置底部导航 RadioButton 的selector
     * @param radioButton
     * @param normalUrl 默认图标URl
     * @param checkedUrl 选中图标URL
     */
    private void setRadioButtonSelectorDrawable(RadioButton radioButton, String normalUrl, String checkedUrl){

        StateListDrawable stateListDrawable = new StateListDrawable();

        //先加载默认样式
        Glide.with(this)
                .load(normalUrl)
                .into(new SimpleTarget<Drawable>() {
                    @Override
                    public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
                        //默认样式
                        stateListDrawable.addState(new int[]{-android.R.attr.state_checked}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值