# TextDrawable
**Repository Path**: hihopeorg/TextDrawable
## Basic Information
- **Project Name**: TextDrawable
- **Description**: No description available
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-02-27
- **Last Updated**: 2021-10-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TextDrawable
**本项目是基于开源项目TextDrawable进行ohos的移植和开发的,可以通过项目标签以及github地址( https://github.com/amulyakhare/TextDrawable )追踪到原项目版本**
#### 项目介绍
- 项目名称:TextDrawable
- 所属系列:ohos的第三方组件适配移植
- 功能:支持圆形,矩形,圆角矩形,加边框,字体样式多种组合背景与文字并列展示
- 项目移植状态:完成
- 调用差异:无
- 项目作者和维护人:hihope
- 联系方式: hihope@hoperun.com
- 原项目Doc地址:https://github.com/amulyakhare/TextDrawable
- 原项目基线版本:无releases版本
- 编程语言:Java
- 外部库依赖: 无
#### 效果展示
#### 安装教程
##### 方法1.
1. 下载依赖库har包textdrawable.har。
2. 启动 DevEco Studio,将下载的har包,导入工程目录“entry->libs”下。
3. 在moudle级别下的build.gradle文件中添加依赖,在dependences标签中增加对libs目录下har包的引用。
```
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
……
}
```
4. 在导入的har包上点击右键,选择“Add as Library”对包进行引用,选择需要引用的模块,并点击“OK”即引用成功。
##### 方法2.
1. 在工程的build.gradle的allprojects中,添加HAR所在的Maven仓地址
```
repositories {
maven {
url 'http://106.15.92.248:8081/repository/Releases/'
}
}
```
2. 在应用模块的build.gradle的dependencies闭包中,添加如下代码:
```
dependencies {
implementation 'com.amulyakhare.ohos:textdrawable:1.0.1'
}
```
#### 使用说明
1. xml
```
```
2. 指定image的宽度/高度,element将自动缩放以适应大小。
```
TextDrawable drawable = TextDrawable.builder()
.buildRect("A", Color.RED);
Image image = (Image) findComponentById(ResourceTable.Id_imageView);
img.setBackground(drawable);
img.addDrawTask(new Component.DrawTask() {
@Override
public void onDraw(Component component, Canvas canvas) {
drawable.drawToCanvas(canvas);
}
}, Component.DrawTask.BETWEEN_CONTENT_AND_FOREGROUND);
```
3.创建圆角或圆角矩形
```java
TextDrawable drawable1 = TextDrawable.builder()
.buildRoundRect("A", Color.RED, 10); // radius in px
TextDrawable drawable2 = TextDrawable.builder()
.buildRound("A", Color.RED);
```
4. 加边框:
```java
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.withBorder(4) /* thickness in px */
.endConfig()
.buildRoundRect("A", Color.RED, 10);
```
5. 修改字体样式:
```java
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.textColor(Color.BLACK)
.useFont(Typeface.DEFAULT)
.fontSize(30) /* size in px */
.bold()
.toUpperCase()
.endConfig()
.buildRect("a", Color.RED)
```
6. 内置颜色生产工具
```
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("user@gmail.com")
// 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);
```
7.指定宽度/高度
```
xml
java
TextDrawable drawable = TextDrawable.builder()
.beginConfig()
.width(60) // width in px
.height(60) // height in px
.endConfig()
.buildRect("A", Color.RED);
Image image = (Image) findComponentById(ResourceTable.Id_imageView);
img.setBackground(drawable);
img.addDrawTask(new Component.DrawTask() {
@Override
public void onDraw(Component component, Canvas canvas) {
drawable.drawToCanvas(canvas);
}
}, Component.DrawTask.BETWEEN_CONTENT_AND_FOREGROUND);
```
#### 版本迭代
- v1.0.1
#### 版权和许可信息
- MIT Licence