6 Star 5 Fork 1

HarmonyOS-TPC / TextDrawable

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

NOTICE: 1.在中文路径下,Build Debug Hap(s)会失败。建议将项目放置在全英文目录下。 2.此项目中library Module类型为Java Library,下载导入后需修改/library/build.gradle中的sdk依赖路径方可正常编译。

dependencies {
    // dir改为自己本地sdk安装路径
    compileOnly fileTree(dir: 'C:/Users/Administrator/AppData/Local/Huawei/Sdk/java/2.1.1.21/api', include: ['*.jar'])
}

TextDrawable

This light-weight library provides images with letter/text like the Gmail app. It extends the ShapeElement class thus can be used with existing/custom/network Image classes. Also included is a fluent interface for creating shapeElements and a customizable ColorGenerator.

How to use

install

case 1: Generate a JAR package through the library Module and add the JAR package to the libs directory. Add the following code in entry/gradle.build.

implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])

case 2:

allprojects{
    repositories{
        mavenCentral()
    }
}

implementation 'io.openharmony.tpc.thirdlib:TextDrawable:1.0.3'

1. Create simple tile:

<Image ohos:width="60dp"
       ohos:height="60dp"
       ohos:id="$+id:image"/>

Note: Specify width/height for the Image and the drawable` will auto-scale to fit the size.

TextDrawable drawable = TextDrawable.builder()
                .buildRect("A", Color.RED);
Image image = (Image) findComponentById(ResourceTable.Id_image);
image.addDrawTask(new Component.DrawTask() {
    @Override
    public void onDraw(Component component, Canvas canvas) {
    drawable.setBounds(new Rect(0, 0, image.getWidth(), image.getHeight()));
    drawable.drawToCanvas(canvas);
    }
});

2. Create rounded corner or circular tiles:

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

TextDrawable drawable2 = TextDrawable.builder()
                .buildRound("A", Color.RED);

3. Add border:

TextDrawable drawable = TextDrawable.builder()
                .beginConfig()
                    .withBorder(4) /* thickness in px */
                .endConfig()
                .buildRoundRect("A", Color.RED, 10);

4. Modify font style:

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:

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);

6. Specify the width / height:

	<Image ohos:width="match_content"
		   ohos:height="match_content"
		   android:id="$+id:image"/>

Note: The Image could use match_content width/height. You could set the width/height of the drawable using code.

	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_image);
	image.addDrawTask(new Component.DrawTask() {
		@Override
		public void onDraw(Component component, Canvas canvas) {
		drawable.setBounds(new Rect(0, 0, image.getWidth(), image.getHeight()));
		drawable.drawToCanvas(canvas);
		}
	});

7. Other features:

  1. Mix-match with other drawables. Use it in conjunction with StateElement, FrameAnimationElement etc.

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

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

The MIT License (MIT) Copyright (c) 2014 Amulya Khare Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

TextDrawable is a light-weight library provides images with letter/text like the Gmail app 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/HarmonyOS-tpc/TextDrawable.git
git@gitee.com:HarmonyOS-tpc/TextDrawable.git
HarmonyOS-tpc
TextDrawable
TextDrawable
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891