代码动态修改shape属性

本文介绍了一种在Android应用中动态调整矩形框样式的实现方法,包括边框颜色、背景颜色及圆角等属性的修改。通过GradientDrawable可以灵活地改变UI组件的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天突然遇到一个问题, 我需要几个不同边线颜色,不同背景色颜色的矩形框,之前我都是一个需求在drawable中创建一个xml,然后我想,难道没有办法动态改变其属性么,经过查询找到以下方法

//里面的值单位为px,需要讲dp转换为px
GradientDrawable mGroupDrawable= (GradientDrawable) button.getBackground();
                    /*设置边框颜色和宽度*/
                    mGroupDrawable.setStroke(dip2px(FamilyDoctorActivity.this,(float)0.5), getResources().getColor(R.color.holo_orange_light));
                     /*设置整体背景颜色*/
                    mGroupDrawable.setColor(getResources().getColor(R.color.white));
                    /*设置圆角*/
                    mGroupDrawable.setCornerRadius(dip2px(FamilyDoctorActivity.this,(float)4));
  /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
public static int dip2px(Context context, float dpValue) {
 final float scale = context
         .getResources().getDisplayMetrics().density;
                return (int) (dpValue * scale + 0.5f);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值