A Card Library

In the last weeks I tried to collect my code and build a Card library.
I wanted something that could realize many types of Card (not all, of course), with some built-in features without having to rewrite each time a lot of code.
I am still developing but a first version is presentable



Card Library provides a custom tag CardView to display a UI Card.

  • It provides different parts as a Header, a Thumbnail, a Shadow, a MainContentArea where you can inflate your custom layout
  • You can customize the global layout as you like
  • You can have some built-in features as OnClickListener, OnSwipeListener , OnLongClickListener
  • CardHeader` provides an overflow button with a PopupMenuListener, a button to expand/collapse an area, or a customizable button with its listener.
  • CardThumbnail` load a Bitmap with a resource ID or with a URL using `LRUCache` and an `AsyncTask`

Create a `Card` is is pretty simple.

First, you need an XML layout that will display the `Card`.

        <it.gmariotti.cardslib.library.view.CardView
            android:id="@+id/carddemo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="12dp"
            android:layout_marginRight="12dp"
            android:layout_marginTop="12dp"/>
Then create a model:
      //Create a Card
      Card card = new Card(getContext());

      //Create a CardHeader
      CardHeader header = new CardHeader(getContext());
      ....
      //Add Header to card
      card.addCardHeader(header);
Last get a reference to the `CardView` from your code, and set your `Card.
       //Set card in the cardView
       CardView cardView = (CardView) getActivity().findViewById(R.id.carddemo);

       cardView.setCard(card);

For more detailed information and examples you can read this document.

You can get code from GitHub:

Comments

Popular posts from this blog

AntiPattern: freezing a UI with Broadcast Receiver

NotificationListenerService and kitkat

How to centralize the support libraries dependencies in gradle