下面列出了android.graphics.drawable.ShapeDrawable#setIntrinsicWidth() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void buildColorPickerView(View view, int colorCode) {
view.setVisibility(View.VISIBLE);
ShapeDrawable biggerCircle = new ShapeDrawable(new OvalShape());
biggerCircle.setIntrinsicHeight(20);
biggerCircle.setIntrinsicWidth(20);
biggerCircle.setBounds(new Rect(0, 0, 20, 20));
biggerCircle.getPaint().setColor(colorCode);
ShapeDrawable smallerCircle = new ShapeDrawable(new OvalShape());
smallerCircle.setIntrinsicHeight(5);
smallerCircle.setIntrinsicWidth(5);
smallerCircle.setBounds(new Rect(0, 0, 5, 5));
smallerCircle.getPaint().setColor(Color.WHITE);
smallerCircle.setPadding(10, 10, 10, 10);
Drawable[] drawables = {smallerCircle, biggerCircle};
LayerDrawable layerDrawable = new LayerDrawable(drawables);
view.setBackgroundDrawable(layerDrawable);
}
private void buildColorPickerView(View view, int colorCode) {
view.setVisibility(View.VISIBLE);
ShapeDrawable biggerCircle = new ShapeDrawable(new OvalShape());
biggerCircle.setIntrinsicHeight(20);
biggerCircle.setIntrinsicWidth(20);
biggerCircle.setBounds(new Rect(0, 0, 20, 20));
biggerCircle.getPaint().setColor(colorCode);
ShapeDrawable smallerCircle = new ShapeDrawable(new OvalShape());
smallerCircle.setIntrinsicHeight(5);
smallerCircle.setIntrinsicWidth(5);
smallerCircle.setBounds(new Rect(0, 0, 5, 5));
smallerCircle.getPaint().setColor(Color.WHITE);
smallerCircle.setPadding(10, 10, 10, 10);
Drawable[] drawables = {smallerCircle, biggerCircle};
LayerDrawable layerDrawable = new LayerDrawable(drawables);
view.setBackgroundDrawable(layerDrawable);
}
private void buildColorPickerView(View view, int colorCode) {
view.setVisibility(View.VISIBLE);
ShapeDrawable biggerCircle = new ShapeDrawable(new OvalShape());
biggerCircle.setIntrinsicHeight(20);
biggerCircle.setIntrinsicWidth(20);
biggerCircle.setBounds(new Rect(0, 0, 20, 20));
biggerCircle.getPaint().setColor(colorCode);
ShapeDrawable smallerCircle = new ShapeDrawable(new OvalShape());
smallerCircle.setIntrinsicHeight(5);
smallerCircle.setIntrinsicWidth(5);
smallerCircle.setBounds(new Rect(0, 0, 5, 5));
smallerCircle.getPaint().setColor(Color.WHITE);
smallerCircle.setPadding(10, 10, 10, 10);
Drawable[] drawables = {smallerCircle, biggerCircle};
LayerDrawable layerDrawable = new LayerDrawable(drawables);
view.setBackgroundDrawable(layerDrawable);
}
private ShapeDrawable makeDot(int size, int color) {
ShapeDrawable dot = new ShapeDrawable(new OvalShape());
dot.setIntrinsicWidth(size);
dot.setIntrinsicHeight(size);
dot.getPaint().setColor(ContextCompat.getColor(getContext(), color));
return dot;
}
private void addDividerItemDecoration(@ColorInt int color, int orientation,
int paddingLeft, int paddingTop,
int paddingRight, int paddingBottom) {
DividerItemDecoration decor = new DividerItemDecoration(getContext(), orientation);
if (color != 0) {
ShapeDrawable shapeDrawable = new ShapeDrawable(new RectShape());
shapeDrawable.setIntrinsicHeight(Utils.dpToPx(getContext(), 1));
shapeDrawable.setIntrinsicWidth(Utils.dpToPx(getContext(), 1));
shapeDrawable.getPaint().setColor(color);
InsetDrawable insetDrawable = new InsetDrawable(shapeDrawable, paddingLeft, paddingTop, paddingRight, paddingBottom);
decor.setDrawable(insetDrawable);
}
decor.setShowLastDivider(showLastDivider);
addItemDecoration(decor);
}
private void change() {
float[] outerR = new float[]{mSize / 2, mSize / 2, mSize / 2, mSize / 2, mSize / 2, mSize / 2, mSize / 2, mSize / 2};
Shape shape = new RoundRectShape(outerR, null, null);
ShapeDrawable shapeDrawable = new ShapeDrawable(shape);
shapeDrawable.setIntrinsicHeight((int) mSize);
shapeDrawable.setIntrinsicWidth((int) mSize);
shapeDrawable.setPadding(0, 0, 0, 0);
shapeDrawable.getPaint().setColor(mColor);
shapeDrawable.getPaint().setStyle(Paint.Style.FILL);
setBackgroundDrawable(shapeDrawable);
setHeight((int) mSize);
setMinWidth((int) mSize);
}
/**
* Creates a new circle for the Badge background.
*
* @param size the width and height for the circle
* @param color the activeIconColor for the circle
* @return a nice and adorable circle.
*/
@NonNull
static ShapeDrawable make(@IntRange(from = 0) int size, @ColorInt int color) {
ShapeDrawable indicator = new ShapeDrawable(new OvalShape());
indicator.setIntrinsicWidth(size);
indicator.setIntrinsicHeight(size);
indicator.getPaint().setColor(color);
return indicator;
}
/**
* Creates a new ShapeDrawable, in this case a circle.
* @param size the width and height for the circle
* @param color the color resource for the circle
* @return a nice and adorable tiny little circle indicator.
*/
protected static ShapeDrawable newOne(int size, int color) {
ShapeDrawable indicator = new ShapeDrawable(new OvalShape());
indicator.setIntrinsicWidth(size);
indicator.setIntrinsicHeight(size);
indicator.getPaint().setColor(color);
return indicator;
}
ShapeDrawable generateDrawable(@ColorInt int color){
ShapeDrawable d = new ShapeDrawable(new OvalShape());
d.setIntrinsicWidth(Utils.dipToPx(itemView.getContext(), 24));
d.setIntrinsicHeight(Utils.dipToPx(itemView.getContext(), 24));
d.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
return d;
}
/**
* Recreates the UI to reflect the current values of the member variables.
*/
private void reflectParametersInView() {
// Reset root View so that the UI can be entirely recreated
removeAllViews();
// Make the root View bounds big enough to encompass the maximum diameter
final int maxDimension = Math.max(inactiveDiameterPx, activeDiameterPx);
setLayoutParams(new LayoutParams(maxDimension, maxDimension));
// Set the gravity to centre for simplicity
setGravity(Gravity.CENTER);
// Create the drawable based on the current member variables
final int diameter = (state == State.ACTIVE) ? activeDiameterPx : inactiveDiameterPx;
final int color = (state == State.ACTIVE) ? activeColor : inactiveColor;
shape = new ShapeDrawable(new OvalShape());
shape.setIntrinsicWidth(diameter);
shape.setIntrinsicHeight(diameter);
shape.getPaint().setColor(color);
// Add the drawable to the drawable holder
drawableHolder = new ImageView(getContext());
drawableHolder.setImageDrawable(null); // Forces redraw
drawableHolder.setImageDrawable(shape);
// Add the drawable holder to root View
addView(drawableHolder);
}
private static ShapeDrawable createRectShape(int width, int height, int color) {
ShapeDrawable shape = new ShapeDrawable(new RectShape());
shape.setIntrinsicHeight(height);
shape.setIntrinsicWidth(width);
shape.getPaint().setColor(color);
return shape;
}
private static ShapeDrawable drawCircle (int width, int height, int color) {
ShapeDrawable oval = new ShapeDrawable (new OvalShape());
oval.setIntrinsicHeight(height);
oval.setIntrinsicWidth(width);
oval.getPaint().setColor(color);
return oval;
}
public void setThumbnail(Bitmap bitmap) {
// Bitmap drawable
BitmapDrawable bmp = new BitmapDrawable(getResources(), bitmap);
bmp.setGravity(Gravity.CENTER);
int strokeWidth = 24;
// Checked state
ShapeDrawable rectChecked = new ShapeDrawable(new RectShape());
rectChecked.getPaint().setColor(0xFFFFFFFF);
rectChecked.getPaint().setStyle(Paint.Style.STROKE);
rectChecked.getPaint().setStrokeWidth(strokeWidth);
rectChecked.setIntrinsicWidth(bitmap.getWidth() + strokeWidth);
rectChecked.setIntrinsicHeight(bitmap.getHeight() + strokeWidth);
Drawable drawableArray[] = new Drawable[]{bmp, rectChecked};
LayerDrawable layerChecked = new LayerDrawable(drawableArray);
// Unchecked state
ShapeDrawable rectUnchecked = new ShapeDrawable(new RectShape());
rectUnchecked.getPaint().setColor(0x0);
rectUnchecked.getPaint().setStyle(Paint.Style.STROKE);
rectUnchecked.getPaint().setStrokeWidth(strokeWidth);
rectUnchecked.setIntrinsicWidth(bitmap.getWidth() + strokeWidth);
rectUnchecked.setIntrinsicHeight(bitmap.getHeight() + strokeWidth);
Drawable drawableArray2[] = new Drawable[]{bmp, rectUnchecked};
LayerDrawable layerUnchecked = new LayerDrawable(drawableArray2);
// StateList drawable
StateListDrawable states = new StateListDrawable();
states.addState(new int[]{android.R.attr.state_checked},
layerChecked);
states.addState(new int[]{},
layerUnchecked);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
setBackground(states);
} else {
//noinspection deprecation
setBackgroundDrawable(states);
}
//Offset text to center/bottom of the checkbox
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setTextSize(getTextSize());
paint.setTypeface(getTypeface());
float w = paint.measureText(getText(), 0, getText().length());
setPadding(getPaddingLeft() + (int) ((bitmap.getWidth() - w) / 2.f + .5f),
getPaddingTop() + (int) (bitmap.getHeight() * 0.70),
getPaddingRight(),
getPaddingBottom());
setShadowLayer(5, 0, 0, Color.BLACK);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int width = (int) getResources().getDimension(R.dimen.image_width);
int height = (int) getResources().getDimension(R.dimen.image_height);
int padding = (int) getResources().getDimension(R.dimen.padding);
// Get container View
RelativeLayout rl = findViewById(R.id.main_window);
// Create Cyan Shape
ShapeDrawable cyanShape = new ShapeDrawable(new OvalShape());
cyanShape.getPaint().setColor(Color.CYAN);
cyanShape.setIntrinsicHeight(height);
cyanShape.setIntrinsicWidth(width);
cyanShape.setAlpha(ALPHA);
// Put Cyan Shape into an ImageView
ImageView cyanView = new ImageView(getApplicationContext());
cyanView.setImageDrawable(cyanShape);
cyanView.setPadding(padding, padding, padding, padding);
// Specify placement of ImageView within RelativeLayout
RelativeLayout.LayoutParams cyanViewLayoutParams = new RelativeLayout.LayoutParams(
height, width);
cyanViewLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);
cyanViewLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
cyanView.setLayoutParams(cyanViewLayoutParams);
rl.addView(cyanView);
// Create Magenta Shape
ShapeDrawable magentaShape = new ShapeDrawable(new OvalShape());
magentaShape.getPaint().setColor(Color.MAGENTA);
magentaShape.setIntrinsicHeight(height);
magentaShape.setIntrinsicWidth(width);
magentaShape.setAlpha(ALPHA);
// Put Magenta Shape into an ImageView
ImageView magentaView = new ImageView(getApplicationContext());
magentaView.setImageDrawable(magentaShape);
magentaView.setPadding(padding, padding, padding, padding);
// Specify placement of ImageView within RelativeLayout
RelativeLayout.LayoutParams magentaViewLayoutParams = new RelativeLayout.LayoutParams(
height, width);
magentaViewLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);
magentaViewLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
magentaView.setLayoutParams(magentaViewLayoutParams);
rl.addView(magentaView);
}
private void grxSetUPAdditionalOptions(TypedArray a){
mGrxZeroOffset = a.getInt(R.styleable.VerticalSeekBar_zeroOffset,0);
mGrxDividerStep = a.getInt(R.styleable.VerticalSeekBar_dividerStep,0);
mGrxHalfDividerLength = a.getDimension(R.styleable.VerticalSeekBar_dividerLength,0f)/2;
mGrxHalfDividerThickness = a.getDimensionPixelSize(R.styleable.VerticalSeekBar_dividerThickness,0)/2;
mGrxHalfProgressThickness = a.getDimensionPixelSize(R.styleable.VerticalSeekBar_progressThickness,0)/2;
mGrxShowBackgroundTrack = a.getBoolean(R.styleable.VerticalSeekBar_showBackgroundTrack,true);
mGrxZeroOffsetCircleRadius = a.getDimensionPixelSize(R.styleable.VerticalSeekBar_zeroOffsetCircleRadius,0);
mGrxMin = a.getInt(R.styleable.VerticalSeekBar_min,0);
mGrxNumSteps = getMax() - mGrxMin;
mGrxProgressPaint = new Paint();
mGrxProgressPaint.setStyle(Paint.Style.FILL);
TypedValue typedValue = new TypedValue();
TypedArray b = getContext().obtainStyledAttributes(typedValue.data, new int[] { android.R.attr.colorAccent });
int color = b.getColor(0, 0);
b.recycle();
mGrxProgressPaint.setColor(color);
Drawable currentprogressdrawable = getProgressDrawable();
Drawable track = null;
mGrxShowBackgroundTrack=false;//bbb
if(currentprogressdrawable!= null && currentprogressdrawable instanceof LayerDrawable) {
if (!mGrxShowBackgroundTrack){
int indexbg = ((LayerDrawable) currentprogressdrawable).findIndexByLayerId(android.R.id.background);
((LayerDrawable) currentprogressdrawable).setDrawable(indexbg, new ColorDrawable(0));
}
int indexprogress = ((LayerDrawable) currentprogressdrawable).findIndexByLayerId(android.R.id.progress);
((LayerDrawable) currentprogressdrawable).setDrawable(indexprogress, new ColorDrawable(0));
}
mGrxDividerPaint = new Paint();
mGrxDividerPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mGrxDividerPaint.setColor(color);
mGrxDividerPaint.setStrokeWidth(2.0f);
mTickMark = new ShapeDrawable(new OvalShape());
mTickMark.setIntrinsicHeight(10);
mTickMark.setIntrinsicWidth(10);
mTickMark.getPaint().setColor(color);
mTickMark.setBounds(new Rect(-2, -2, 2, 2));
mTickMarkSoft = new ShapeDrawable(new OvalShape());
mTickMarkSoft.setIntrinsicHeight(10);
mTickMarkSoft.setIntrinsicWidth(10);
mTickMarkSoft.getPaint().setColor(color&0x10ffffff);
mTickMarkSoft.setBounds(new Rect(-4, -4, 4, 4));
}
private void init(AttributeSet attrs) {
if (attributes == null)
attributes = new Attributes(this, getResources());
if (attrs != null) {
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.fl_FlatToggleButton);
// getting common attributes
int customTheme = a.getResourceId(R.styleable.fl_FlatToggleButton_fl_theme, Attributes.DEFAULT_THEME);
attributes.setThemeSilent(customTheme, getResources());
attributes.setRadius(a.getDimensionPixelSize(R.styleable.fl_FlatToggleButton_fl_cornerRadius, Attributes.DEFAULT_RADIUS_PX));
space = a.getDimensionPixelSize(R.styleable.fl_FlatToggleButton_fl_space, space);
padding = space / 10;
a.recycle();
}
// creating unchecked-enabled state drawable
ShapeDrawable uncheckedEnabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedEnabledFrontCore.getPaint().setColor(attributes.getColor(2));
InsetDrawable uncheckedEnabledFront = new InsetDrawable(uncheckedEnabledFrontCore, padding);
ShapeDrawable uncheckedEnabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedEnabledBack.getPaint().setColor(Color.parseColor("#f2f2f2"));
uncheckedEnabledBack.setIntrinsicWidth(space / 2 * 5);
uncheckedEnabledBack.setIntrinsicHeight(space);
uncheckedEnabledBack.setPadding(0, 0, space / 2 * 5, 0);
Drawable[] d1 = {uncheckedEnabledBack, uncheckedEnabledFront};
LayerDrawable uncheckedEnabled = new LayerDrawable(d1);
// creating checked-enabled state drawable
ShapeDrawable checkedEnabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedEnabledFrontCore.getPaint().setColor(attributes.getColor(2));
InsetDrawable checkedEnabledFront = new InsetDrawable(checkedEnabledFrontCore, padding);
ShapeDrawable checkedEnabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedEnabledBack.getPaint().setColor(attributes.getColor(3));
checkedEnabledBack.setPadding(space / 2 * 5, 0, 0, 0);
Drawable[] d2 = {checkedEnabledBack, checkedEnabledFront};
LayerDrawable checkedEnabled = new LayerDrawable(d2);
// creating unchecked-disabled state drawable
ShapeDrawable uncheckedDisabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedDisabledFrontCore.getPaint().setColor(Color.parseColor("#d2d2d2"));
InsetDrawable uncheckedDisabledFront = new InsetDrawable(uncheckedDisabledFrontCore, padding);
ShapeDrawable uncheckedDisabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedDisabledBack.getPaint().setColor(Color.parseColor("#f2f2f2"));
uncheckedDisabledBack.setPadding(0, 0, space / 2 * 5, 0);
Drawable[] d3 = {uncheckedDisabledBack, uncheckedDisabledFront};
LayerDrawable uncheckedDisabled = new LayerDrawable(d3);
// creating checked-disabled state drawable
ShapeDrawable checkedDisabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedDisabledFrontCore.getPaint().setColor(attributes.getColor(3));
InsetDrawable checkedDisabledFront = new InsetDrawable(checkedDisabledFrontCore, padding);
ShapeDrawable checkedDisabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedDisabledBack.getPaint().setColor(Color.parseColor("#f2f2f2"));
checkedDisabledBack.setPadding(space / 2 * 5, 0, 0, 0);
Drawable[] d4 = {checkedDisabledBack, checkedDisabledFront};
LayerDrawable checkedDisabled = new LayerDrawable(d4);
StateListDrawable states = new StateListDrawable();
states.addState(new int[]{-android.R.attr.state_checked, android.R.attr.state_enabled},
new InsetDrawable(uncheckedEnabled, padding * 2));
states.addState(new int[]{android.R.attr.state_checked, android.R.attr.state_enabled},
new InsetDrawable(checkedEnabled, padding * 2));
states.addState(new int[]{-android.R.attr.state_checked, -android.R.attr.state_enabled},
new InsetDrawable(uncheckedDisabled, padding * 2));
states.addState(new int[]{android.R.attr.state_checked, -android.R.attr.state_enabled},
new InsetDrawable(checkedDisabled, padding * 2));
setBackgroundDrawable(states);
setText("");
setTextOff("");
setTextOn("");
setTextSize(0);
}
private void init(AttributeSet attrs) {
if (attributes == null)
attributes = new Attributes(this, getResources());
if (attrs != null) {
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.fl_FlatToggleButton);
// getting common attributes
int customTheme = a.getResourceId(R.styleable.fl_FlatToggleButton_fl_theme, Attributes.DEFAULT_THEME);
attributes.setThemeSilent(customTheme, getResources());
attributes.setRadius(a.getDimensionPixelSize(R.styleable.fl_FlatToggleButton_fl_cornerRadius, Attributes.DEFAULT_RADIUS_PX));
space = a.getDimensionPixelSize(R.styleable.fl_FlatToggleButton_fl_space, space);
padding = space / 10;
a.recycle();
}
// creating unchecked-enabled state drawable
ShapeDrawable uncheckedEnabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedEnabledFrontCore.getPaint().setColor(attributes.getColor(2));
InsetDrawable uncheckedEnabledFront = new InsetDrawable(uncheckedEnabledFrontCore, padding);
ShapeDrawable uncheckedEnabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedEnabledBack.getPaint().setColor(Color.parseColor("#f2f2f2"));
uncheckedEnabledBack.setIntrinsicWidth(space / 2 * 5);
uncheckedEnabledBack.setIntrinsicHeight(space);
uncheckedEnabledBack.setPadding(0, 0, space / 2 * 5, 0);
Drawable[] d1 = { uncheckedEnabledBack, uncheckedEnabledFront };
LayerDrawable uncheckedEnabled = new LayerDrawable(d1);
// creating checked-enabled state drawable
ShapeDrawable checkedEnabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedEnabledFrontCore.getPaint().setColor(attributes.getColor(2));
InsetDrawable checkedEnabledFront = new InsetDrawable(checkedEnabledFrontCore, padding);
ShapeDrawable checkedEnabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedEnabledBack.getPaint().setColor(attributes.getColor(3));
checkedEnabledBack.setPadding(space / 2 * 5, 0, 0, 0);
Drawable[] d2 = { checkedEnabledBack, checkedEnabledFront };
LayerDrawable checkedEnabled = new LayerDrawable(d2);
// creating unchecked-disabled state drawable
ShapeDrawable uncheckedDisabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedDisabledFrontCore.getPaint().setColor(Color.parseColor("#d2d2d2"));
InsetDrawable uncheckedDisabledFront = new InsetDrawable(uncheckedDisabledFrontCore, padding);
ShapeDrawable uncheckedDisabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
uncheckedDisabledBack.getPaint().setColor(Color.parseColor("#f2f2f2"));
uncheckedDisabledBack.setPadding(0, 0, space / 2 * 5, 0);
Drawable[] d3 = { uncheckedDisabledBack, uncheckedDisabledFront };
LayerDrawable uncheckedDisabled = new LayerDrawable(d3);
// creating checked-disabled state drawable
ShapeDrawable checkedDisabledFrontCore = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedDisabledFrontCore.getPaint().setColor(attributes.getColor(3));
InsetDrawable checkedDisabledFront = new InsetDrawable(checkedDisabledFrontCore, padding);
ShapeDrawable checkedDisabledBack = new ShapeDrawable(new RoundRectShape(attributes.getOuterRadius(), null, null));
checkedDisabledBack.getPaint().setColor(Color.parseColor("#f2f2f2"));
checkedDisabledBack.setPadding(space / 2 * 5, 0, 0, 0);
Drawable[] d4 = { checkedDisabledBack, checkedDisabledFront };
LayerDrawable checkedDisabled = new LayerDrawable(d4);
StateListDrawable states = new StateListDrawable();
states.addState(new int[] { -android.R.attr.state_checked, android.R.attr.state_enabled }, new InsetDrawable(uncheckedEnabled, padding * 2));
states.addState(new int[] { android.R.attr.state_checked, android.R.attr.state_enabled }, new InsetDrawable(checkedEnabled, padding * 2));
states.addState(new int[] { -android.R.attr.state_checked, -android.R.attr.state_enabled }, new InsetDrawable(uncheckedDisabled, padding * 2));
states.addState(new int[] { android.R.attr.state_checked, -android.R.attr.state_enabled }, new InsetDrawable(checkedDisabled, padding * 2));
setBackgroundDrawable(states);
setText("");
setTextOff("");
setTextOn("");
setTextSize(0);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int width = (int) getResources().getDimension(R.dimen.image_width);
int height = (int) getResources().getDimension(R.dimen.image_height);
int padding = (int) getResources().getDimension(R.dimen.padding);
// Get container View
RelativeLayout rl = (RelativeLayout) findViewById(R.id.main_window);
// Create Cyan Shape
ShapeDrawable cyanShape = new ShapeDrawable(new OvalShape());
cyanShape.getPaint().setColor(Color.CYAN);
cyanShape.setIntrinsicHeight(height);
cyanShape.setIntrinsicWidth(width);
cyanShape.setAlpha(alpha);
// Put Cyan Shape into an ImageView
ImageView cyanView = new ImageView(getApplicationContext());
cyanView.setImageDrawable(cyanShape);
cyanView.setPadding(padding, padding, padding, padding);
// Specify placement of ImageView within RelativeLayout
RelativeLayout.LayoutParams cyanViewLayoutParams = new RelativeLayout.LayoutParams(
height, width);
cyanViewLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);
cyanViewLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
cyanView.setLayoutParams(cyanViewLayoutParams);
rl.addView(cyanView);
// Create Magenta Shape
ShapeDrawable magentaShape = new ShapeDrawable(new OvalShape());
magentaShape.getPaint().setColor(Color.MAGENTA);
magentaShape.setIntrinsicHeight(height);
magentaShape.setIntrinsicWidth(width);
magentaShape.setAlpha(alpha);
// Put Magenta Shape into an ImageView
ImageView magentaView = new ImageView(getApplicationContext());
magentaView.setImageDrawable(magentaShape);
magentaView.setPadding(padding, padding, padding, padding);
// Specify placement of ImageView within RelativeLayout
RelativeLayout.LayoutParams magentaViewLayoutParams = new RelativeLayout.LayoutParams(
height, width);
magentaViewLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);
magentaViewLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
magentaView.setLayoutParams(magentaViewLayoutParams);
rl.addView(magentaView);
}
private ShapeDrawable getBackground(int color) {
ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
int size = (int) context.getResources().getDimension(R.dimen.avatar_size);
shapeDrawable.setIntrinsicWidth(size);
shapeDrawable.setIntrinsicHeight(size);
shapeDrawable.getPaint().setColor(color);
return shapeDrawable;
}
public TagViewHolder(View itemView) {
super(itemView);
ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
final int size = DensityUtil.dip2px(itemView.getContext(), 8.0f);
drawable.setIntrinsicHeight(size);
drawable.setIntrinsicWidth(size);
drawable.setBounds(0, 0, size, size);
drawable.getPaint().setColor(itemView.getResources().getColor(R.color.colorPrimary));
tagText = (TextView) itemView.findViewById(R.id.tag_text);
tagText.setCompoundDrawables(drawable, null, null, null);
tagSelectImage = (ImageView) itemView.findViewById(R.id.tag_check);
final Drawable selectImage = ThemeUtil.getDrawableWithColor(itemView.getResources(), R.drawable.ic_save_blue, R.color.colorPrimary);
tagSelectImage.setImageDrawable(selectImage);
}