RocketChat/TextDrawable

Name: TextDrawable

Owner: Rocket.Chat

Description: 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.

Forked from: amulyakhare/TextDrawable

Created: 2017-10-13 19:18:51.0

Updated: 2018-01-02 18:54:07.0

Pushed: 2017-10-13 20:22:13.0

Homepage:

Size: 692

Language: Java

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

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
Import with Gradle:
sitories{
maven {
    url 'http://dl.bintray.com/amulyakhare/maven'
}


ndencies {
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'

1. Create simple tile:

geView android: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.

Drawable drawable = TextDrawable.builder()
            .buildRect("A", Color.RED);

eView image = (ImageView) findViewById(R.id.image_view);
e.setImageDrawable(drawable);
2. Create rounded corner or circular tiles:

Drawable drawable1 = TextDrawable.builder()
            .buildRoundRect("A", Color.RED, 10); // radius in px

Drawable drawable2 = TextDrawable.builder()
            .buildRound("A", Color.RED);
3. Add border:

Drawable drawable = TextDrawable.builder()
            .beginConfig()
                .withBorder(4) /* thickness in px */
            .endConfig()
            .buildRoundRect("A", Color.RED, 10);
4. Modify font style:
Drawable drawable = 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:
rGenerator generator = ColorGenerator.MATERIAL; // or use DEFAULT
enerate random color
color1 = generator.getRandomColor();
enerate color based on a key (same key returns the same color), useful for list/grid views
color2 = generator.getColor("user@gmail.com")

eclare the builder object once.
Drawable.IBuilder builder = TextDrawable.builder()
            .beginConfig()
                .withBorder(4)
            .endConfig()
            .rect();

euse the builder specs to create multiple drawables
Drawable ic1 = builder.build("A", color1);
Drawable ic2 = builder.build("B", color2);
6. Specify the width / height:
geView android: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.

Drawable drawable = TextDrawable.builder()
            .beginConfig()
                .width(60)  // width in px
                .height(60) // height in px
            .endConfig()
            .buildRect("A", Color.RED);

eView image = (ImageView) findViewById(R.id.image_view);
e.setImageDrawable(drawable);
7. Other features:
  1. Mix-match with other drawables. Use it in conjunction with LayerDrawable, InsetDrawable, AnimationDrawable, TransitionDrawable etc.

  2. Compatible with other views (not just ImageView). Use it as background drawable, compound drawable for TextView, Button etc.

  3. Use multiple letters or unicode characters to create interesting tiles.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.