ChipView

Additional

Language
Java
Version
N/A
Created
Mar 4, 2016
Updated
Mar 5, 2016 (Retired)
Owner
Abhishek Dhiman (adhiman007)
Contributor
Abhishek Dhiman (adhiman007)
1
Activity
Badge
Generate
Download
Source code

ChipView

ChipView helps you in creating attractive [Chips] for your application. ChipView provides you a flexiable way of creating and organizing your chip by following ways:

  • Adding a background or text color to your chip
  • Creating custom layout for your chip
  • Can even create multi color chips

Using ChipView

Add ChipView in your layout and initialize in your Activity

<com.chip.view.ChipView
    android:id="@+id/chipView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:textSize="20sp" />
ChipView chipView = (ChipView) findViewById(R.id.chipView);

ChipBuilder

After initializing ChipView a Chip needs to be created for our ChipView. With the help of ChipBuilder a Chip can be created.

A ChipBuilder is a view builder which helps in creating Chips for ChipView.

public void getViewTypeCount();
public View getChip(LayoutInflater inflater, String data);

getViewTypeCount();

This method will helps in managing views for our Chip.

getChip(LayoutInflater inflater, String data)

This method will return the View that will become the Chip of ChipView.

Creating a Simple Chip

public class Chip implements ChipBuilder {

    @Override
    public View getChip(LayoutInflater inflater, String data) {
        View view = inflater.inflate(R.layout.view_chip, null);
        TextView txtChip = (TextView) view.findViewById(R.id.txt_chip);
        txtChip.setText(data);
        return view;
    }
}

Creating MultiColor Chip

public class Chip extends ChipBuilder {
    private int[] resIds = {R.drawable.chip_red, R.drawable.chip_green, R.drawable.chip_blue};

    @Override
    public int getViewTypeCount() {
        return resIds.length;
    }

    @Override
    public View getChip(LayoutInflater inflater, String data) {
        View view = inflater.inflate(R.layout.view_chip, null);
        TextView txtChip = (TextView) view.findViewById(R.id.txt_chip);
        txtChip.setText(data);
        txtChip.setBackgroundResource(resIds[getPosition()]);
        return view;
    }
}

After creating ChipBuilder, provide the ChipBuilder to ChipView

chipView.setChipBuilder(new Chip());

ChipView click and delete listener

ChipView also provides the functionality to handle the click events along with the feature to delete the chip at the same time. Following is the code.

chipCustomLayout.setDeleteOnClick(true);
chipCustomLayout.setOnChipClickListener(new OnChipClickListener() {
    @Override
    public void onChipClick(ChipView v, String chip) {
                
    }
});

Version

1.0