All Projects → StephenVinouze → ShapeTextDrawable

StephenVinouze / ShapeTextDrawable

Licence: Apache-2.0 license
A Kotlin lightweight library to easily draw shapes that may contain text within them

Programming Languages

kotlin
9241 projects

ShapeTextDrawable

Download Android Arsenal API GitHub license

When it comes to draw basic shapes such as squares or circles, we encounter many approaches to achieve this goal. Using Paint is one of the best approach and yet it is still easier to use an XML shape or even an image. Now if we need to have some text inside our shape, then we usually surrender to the easiest and less time consuming solution. This library intends to avoid this "easy" choice by providing a flexible solution to efficiently draw your shapes and display efficiently some text inside them.

Square shape Round Square shape Round shape
Square shape Round square shape Round shape

Download

Gradle:

compile 'com.github.stephenvinouze:shapetextdrawable:1.0.0'

Maven:

<dependency>
  <groupId>com.github.stephenvinouze</groupId>
  <artifactId>shapetextdrawable</artifactId>
  <version>1.0.0</version>
  <type>aar</type>
</dependency>

Eclipse: shapetextdrawable-1.0.0.aar

Usage

ShapeTextDrawable can be applied to any View as a Drawable. For instance, you can use it on a ImageView.

<ImageView
        android:id="@+id/image_view"
        android:layout_width="50dp"
        android:layout_height="50dp"/>

Next define your ShapeTextDrawable and apply it to your ImageView.

val drawable = ShapeTextDrawable(shapeForm)

yourImageView.setImageDrawable(drawable)

While configuring your ShapeTextDrawable, you must provide a ShapeForm that can be either SQUARE or ROUND. You may also specify a text and customize its color as well as many other properties, but none of these are mandatory.

To draw a rounded square, you can also set a radius when using a SQUARE shape.

val drawable = ShapeTextDrawable(ShapeForm.SQUARE, radius = 10f)

Credits

This library is mostly inspired from the well-written TextDrawable. It was revisited to lighten this library and port it to Kotlin

License

Copyright 2016 Stephen Vinouze.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].