###TextDrawable
This light-weight library provides images with letter/text like the Gmail app. It extends the Drawable class thus can be used with existing/custom/network ImageView classes. Also included is a fluent interface for creating drawables and a customizable ColorGenerator.
###How to use
repositories{
maven {
url 'http://dl.bintray.com/amulyakhare/maven'
}
}
dependencies {
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
}####1. Create simple tile:
<ImageViewandroid:layout_width="60dp"android:layout_height="60dp"android:id="@+id/image_view"/>Note: Specify width/height for the ImageView and the drawable will auto-scale to fit the size.
TextDrawabledrawable = TextDrawable.builder()
.buildRect("A", Color.RED);
ImageViewimage = (ImageView) findViewById(R.id.image_view);
image.setImageDrawable(drawable);####2. Create rounded corner or circular tiles:
TextDrawabledrawable1 = TextDrawable.builder()
.buildRoundRect("A", Color.RED, 10); // radius in pxTextDrawabledrawable2 = TextDrawable.builder()
.buildRound("A", Color.RED);####3. Add border:
TextDrawabledrawable = TextDrawable.builder()
.beginConfig()
.withBorder(4) /* thickness in px */
.endConfig()
.buildRoundRect("A", Color.RED, 10);####4. Modify font style:
TextDrawabledrawable = TextDrawable.builder()
.beginConfig()
.textColor(Color.BLACK)
.useFont(Typeface.DEFAULT)
.fontSize(30) /* size in px */
.bold()
.toUpperCase()
.endConfig()
.buildRect("a", Color.RED)####5. Built-in color generator:
ColorGeneratorgenerator = ColorGenerator.MATERIAL; // or use DEFAULT// generate random colorintcolor1 = generator.getRandomColor();
// generate color based on a key (same key returns the same color), useful for list/grid viewsintcolor2 = generator.getColor("user@gmail.com")
// declare the builder object once.TextDrawable.IBuilderbuilder = TextDrawable.builder()
.beginConfig()
.withBorder(4)
.endConfig()
.rect();
// reuse the builder specs to create multiple drawablesTextDrawableic1 = builder.build("A", color1);
TextDrawableic2 = builder.build("B", color2);####6. Specify the width / height:
<ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/image_view"/>Note: The ImageView could use wrap_content width/height. You could set the width/height of the drawable using code.
TextDrawabledrawable = TextDrawable.builder()
.beginConfig()
.width(60) // width in px
.height(60) // height in px
.endConfig()
.buildRect("A", Color.RED);
ImageViewimage = (ImageView) findViewById(R.id.image_view);
image.setImageDrawable(drawable);####7. Other features:
Mix-match with other drawables. Use it in conjunction with
LayerDrawable,InsetDrawable,AnimationDrawable,TransitionDrawableetc.Compatible with other views (not just
ImageView). Use it as background drawable, compound drawable forTextView,Buttonetc.Use multiple letters or
unicodecharacters to create interesting tiles.





