1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
public void enableCardStyle(int cardFlag) { this.cardFlag = cardFlag; MarginLayoutParams pa = (MarginLayoutParams) getLayoutParams(); if (getTag(R.id.dsl_tag_view_card) == null) { setTag(R.id.dsl_tag_view_card, cardFlag); Drawable drawable = getBackground(); GradientDrawable gradientDrawable; if (drawable instanceof GradientDrawable) { gradientDrawable = (GradientDrawable) drawable; } else { gradientDrawable = new GradientDrawable(); gradientDrawable.setColor(backGroundColor); } pa.leftMargin += ScreenUtil.dip2px(context, 6); pa.rightMargin += ScreenUtil.dip2px(context, 6); switch (cardFlag) { case 1: pa.topMargin += ScreenUtil.dip2px(context, 6); gradientDrawable.setCornerRadii(new float[]{cornerRadius, cornerRadius, cornerRadius, cornerRadius, 0, 0, 0, 0}); break; case 2: gradientDrawable.setCornerRadius(0); break; case 3: pa.bottomMargin += ScreenUtil.dip2px(context, 6); gradientDrawable.setCornerRadii(new float[]{0, 0, 0, 0, cornerRadius, cornerRadius, cornerRadius, cornerRadius}); break; case 4: pa.topMargin += ScreenUtil.dip2px(context, 6); pa.bottomMargin += ScreenUtil.dip2px(context, 6); gradientDrawable.setCornerRadius(cornerRadius); break; } setBackground(gradientDrawable); setLayoutParams(pa); invalidate(); } }
public void disableCardStyle() { cardFlag = 0; MarginLayoutParams pa = (MarginLayoutParams) getLayoutParams(); if (getTag(R.id.dsl_tag_view_card) != null) { int flag = (int) getTag(R.id.dsl_tag_view_card); pa.leftMargin -= ScreenUtil.dip2px(context, 6); pa.rightMargin -= ScreenUtil.dip2px(context, 6); switch (flag) { case 1: pa.topMargin -= ScreenUtil.dip2px(context, 6); break; case 3: pa.bottomMargin -= ScreenUtil.dip2px(context, 6); break; case 4: pa.topMargin -= ScreenUtil.dip2px(context, 6); pa.bottomMargin -= ScreenUtil.dip2px(context, 6); break; } setTag(R.id.dsl_tag_view_card, null); setBackgroundColor(Color.TRANSPARENT); setLayoutParams(pa); invalidate(); } }
|