コード例 #1
0
    public Builder(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
      TypedArray a =
          context.obtainStyledAttributes(
              attrs, R.styleable.CheckBoxDrawable, defStyleAttr, defStyleRes);

      width(
          a.getDimensionPixelSize(
              R.styleable.CheckBoxDrawable_cbd_width, ThemeUtil.dpToPx(context, 32)));
      height(
          a.getDimensionPixelSize(
              R.styleable.CheckBoxDrawable_cbd_height, ThemeUtil.dpToPx(context, 32)));
      boxSize(
          a.getDimensionPixelSize(
              R.styleable.CheckBoxDrawable_cbd_boxSize, ThemeUtil.dpToPx(context, 18)));
      cornerRadius(
          a.getDimensionPixelSize(
              R.styleable.CheckBoxDrawable_cbd_cornerRadius, ThemeUtil.dpToPx(context, 2)));
      strokeSize(
          a.getDimensionPixelSize(
              R.styleable.CheckBoxDrawable_cbd_strokeSize, ThemeUtil.dpToPx(context, 2)));
      strokeColor(a.getColorStateList(R.styleable.CheckBoxDrawable_cbd_strokeColor));
      tickColor(a.getColor(R.styleable.CheckBoxDrawable_cbd_tickColor, 0xFFFFFFFF));
      animDuration(
          a.getInt(
              R.styleable.CheckBoxDrawable_cbd_animDuration,
              context.getResources().getInteger(android.R.integer.config_mediumAnimTime)));

      a.recycle();

      if (mStrokeColor == null) {
        int[][] states =
            new int[][] {
              new int[] {-android.R.attr.state_checked}, new int[] {android.R.attr.state_checked},
            };
        int[] colors =
            new int[] {
              ThemeUtil.colorControlNormal(context, 0xFF000000),
              ThemeUtil.colorControlActivated(context, 0xFF000000),
            };
        strokeColor(new ColorStateList(states, colors));
      }
    }