今天突然遇到一个问题, 我需要几个不同边线颜色,不同背景色颜色的矩形框,之前我都是一个需求在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); }