Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amulyakhare/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.
https://github.com/amulyakhare/TextDrawable
Last synced: 14 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/amulyakhare/TextDrawable
- Owner: amulyakhare
- License: mit
- Created: 2014-10-19T09:56:45.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2021-09-02T12:32:50.000Z (about 3 years ago)
- Last Synced: 2024-10-22T03:39:05.269Z (18 days ago)
- Language: Java
- Homepage:
- Size: 1.09 MB
- Stars: 3,161
- Watchers: 117
- Forks: 618
- Open Issues: 61
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- -awesome-android-ui - TextDrawable - 2.0) | <img src="/art/TextDrawable.png" width="49%"> <img src="/art/TextDrawable2.png" width="49%"> (Index `(light-weight pages)`)
- awesome-android-ui - TextDrawable - 2.0) | <img src="/art/TextDrawable.png" width="49%"> <img src="/art/TextDrawable2.png" width="49%"> (Index `(light-weight pages)`)
- awesome-list - amulyakhare/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. (Java)
- awesome-android-ui - TextDrawable - 2.0) | <img src="/art/TextDrawable.png" width="49%"> <img src="/art/TextDrawable2.png" width="49%"> (Index)
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](http://en.wikipedia.org/wiki/Fluent_interface) for creating drawables and a customizable `ColorGenerator`.
###How to use
#### Import with Gradle:
```groovy
repositories{
maven {
url 'http://dl.bintray.com/amulyakhare/maven'
}
}dependencies {
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
}
```####1. Create simple tile:
```xml
```
**Note:** Specify width/height for the `ImageView` and the `drawable` will auto-scale to fit the size.
```java
TextDrawable drawable = TextDrawable.builder()
.buildRect("A", Color.RED);ImageView image = (ImageView) findViewById(R.id.image_view);
image.setImageDrawable(drawable);
```####2. Create rounded corner or circular tiles:
```java
TextDrawable drawable1 = TextDrawable.builder()
.buildRoundRect("A", Color.RED, 10); // radius in pxTextDrawable drawable2 = TextDrawable.builder()
.buildRound("A", Color.RED);
```####3. Add border:
```java
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.withBorder(4) /* thickness in px */
.endConfig()
.buildRoundRect("A", Color.RED, 10);
```####4. Modify font style:
```java
TextDrawable 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:
```java
ColorGenerator generator = ColorGenerator.MATERIAL; // or use DEFAULT
// generate random color
int color1 = generator.getRandomColor();
// generate color based on a key (same key returns the same color), useful for list/grid views
int color2 = generator.getColor("[email protected]")// declare the builder object once.
TextDrawable.IBuilder builder = TextDrawable.builder()
.beginConfig()
.withBorder(4)
.endConfig()
.rect();// reuse the builder specs to create multiple drawables
TextDrawable ic1 = builder.build("A", color1);
TextDrawable ic2 = builder.build("B", color2);
```####6. Specify the width / height:
```xml
```
**Note:** The `ImageView` could use `wrap_content` width/height. You could set the width/height of the `drawable` using code.```java
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.width(60) // width in px
.height(60) // height in px
.endConfig()
.buildRect("A", Color.RED);ImageView image = (ImageView) findViewById(R.id.image_view);
image.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.