diff --git a/library/src/main/java/com/adroitandroid/chipcloud/Chip.java b/library/src/main/java/com/adroitandroid/chipcloud/Chip.java
index 63115ef..d994914 100644
--- a/library/src/main/java/com/adroitandroid/chipcloud/Chip.java
+++ b/library/src/main/java/com/adroitandroid/chipcloud/Chip.java
@@ -18,6 +18,7 @@ public class Chip extends android.support.v7.widget.AppCompatTextView implements
private boolean selected = false;
private ChipListener listener = null;
private int selectedFontColor = -1;
+ private int backgroundDrawable = -1;
private int unselectedFontColor = -1;
private TransitionDrawable crossfader;
private int selectTransitionMS = 750;
@@ -46,12 +47,13 @@ public Chip(Context context, AttributeSet attrs, int defStyleAttr) {
public void initChip(Context context, int index, String label, Typeface typeface, int textSizePx,
boolean allCaps, int selectedColor, int selectedFontColor, int unselectedColor,
- int unselectedFontColor, ChipCloud.Mode mode) {
+ int unselectedFontColor, ChipCloud.Mode mode,int backgroundDrawable) {
this.index = index;
this.selectedFontColor = selectedFontColor;
this.unselectedFontColor = unselectedFontColor;
this.mode = mode;
+ this.backgroundDrawable=backgroundDrawable;
Drawable selectedDrawable = ContextCompat.getDrawable(context, R.drawable.chip_selected);
@@ -168,6 +170,8 @@ private void setBackgroundCompat(Drawable background) {
} else {
setBackground(background);
}
+ if (backgroundDrawable != -1)
+ setBackgroundResource(backgroundDrawable);
}
public void deselect() {
@@ -191,6 +195,7 @@ public static class ChipBuilder {
private ChipListener chipListener;
private ChipCloud.Mode mode;
+ private int backgroundDrawable;
public ChipBuilder index(int index) {
this.index = index;
@@ -265,12 +270,18 @@ public ChipBuilder deselectTransitionMS(int deselectTransitionMS) {
public Chip build(Context context) {
Chip chip = (Chip) LayoutInflater.from(context).inflate(R.layout.chip, null);
chip.initChip(context, index, label, typeface, textSizePx, allCaps, selectedColor,
- selectedFontColor, unselectedColor, unselectedFontColor, mode);
+ selectedFontColor, unselectedColor, unselectedFontColor, mode,backgroundDrawable);
chip.setSelectTransitionMS(selectTransitionMS);
chip.setDeselectTransitionMS(deselectTransitionMS);
chip.setChipListener(chipListener);
chip.setHeight(chipHeight);
return chip;
}
+
+ public ChipBuilder backgroundDrawable(int backgroundDrawable) {
+ this.backgroundDrawable = backgroundDrawable;
+ return this;
+
+ }
}
}
diff --git a/library/src/main/java/com/adroitandroid/chipcloud/ChipCloud.java b/library/src/main/java/com/adroitandroid/chipcloud/ChipCloud.java
index 952bfb9..2c45421 100644
--- a/library/src/main/java/com/adroitandroid/chipcloud/ChipCloud.java
+++ b/library/src/main/java/com/adroitandroid/chipcloud/ChipCloud.java
@@ -17,6 +17,7 @@ public enum Mode {
private int selectedFontColor = -1;
private int unselectedColor = -1;
private int unselectedFontColor = -1;
+ private int backgroundDrawable = -1;
private int selectTransitionMS = 750;
private int deselectTransitionMS = 500;
private Mode mode = Mode.SINGLE;
@@ -48,6 +49,7 @@ public ChipCloud(Context context, AttributeSet attrs) {
unselectedFontColor = a.getColor(R.styleable.ChipCloud_deselectedFontColor, -1);
selectTransitionMS = a.getInt(R.styleable.ChipCloud_selectTransitionMS, 750);
deselectTransitionMS = a.getInt(R.styleable.ChipCloud_deselectTransitionMS, 500);
+ backgroundDrawable = a.getResourceId(R.styleable.ChipCloud_backgroundDrawable, -1);
String typefaceString = a.getString(R.styleable.ChipCloud_typeface);
if (typefaceString != null) {
typeface = Typeface.createFromAsset(getContext().getAssets(), typefaceString);
@@ -202,6 +204,7 @@ public void addChip(String label) {
.allCaps(allCaps)
.selectedColor(selectedColor)
.selectedFontColor(selectedFontColor)
+ .backgroundDrawable(backgroundDrawable)
.unselectedColor(unselectedColor)
.unselectedFontColor(unselectedFontColor)
.selectTransitionMS(selectTransitionMS)
@@ -273,6 +276,7 @@ public boolean isSelected(int index) {
public static class Configure {
private ChipCloud chipCloud;
private int selectedColor = -1;
+ private int backgroundDrawable = -1;
private int selectedFontColor = -1;
private int deselectedColor = -1;
private int deselectedFontColor = -1;
@@ -386,6 +390,7 @@ public void build() {
if (deselectTransitionMS != -1) chipCloud.setDeselectTransitionMS(deselectTransitionMS);
if (minHorizontalSpacing != -1) chipCloud.setMinimumHorizontalSpacing(minHorizontalSpacing);
if (verticalSpacing != -1) chipCloud.setVerticalSpacing(verticalSpacing);
+ if (backgroundDrawable != -1) chipCloud.setBackgroundDrawable(backgroundDrawable);
chipCloud.setChipListener(chipListener);
chipCloud.addChips(labels);
}
@@ -401,4 +406,8 @@ public void update() {
chipCloud.requestLayout();
}
}
+
+ private void setBackgroundDrawable(int backgroundDrawable) {
+ this.backgroundDrawable=backgroundDrawable;
+ }
}
diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml
index d792aba..79ada32 100644
--- a/library/src/main/res/values/attrs.xml
+++ b/library/src/main/res/values/attrs.xml
@@ -7,6 +7,7 @@
+