java描边,震惊!这个控件绝对值得收藏。轻松实现圆角、文字描边、状态指示等效果...

效果图

简介

RoundCornerTextView 继承自TextView。它拥有TextView的方法,并且进行了功能扩展。RoundCornerTextView 能够轻松的实现原本需要编写Shape 设置背景等繁琐操作才能实现的控件效果。因此,使用了RoundCornerTextView 之后能够使你不用频繁的创建Shape 或导入图片,节省了大量内存。

主要功能

通过组合RoundCornerTextView 的功能,能够创造出上面的效果图中的几种基本效果。当然,当你脑洞大开时能够创造更多有趣而奇怪的效果。下面将介绍RoundCornerTextView 的一些特性。

使用前准备

你可以在xml文件中直接设置RoundCornerTextView 的这些有趣的特有属性。当然,在此之前,你必须确保已经把RoundCornerTextView的 的自定义属性加入到你项目中的attrs.xml中(点击这里寻找RoundCornerTextView的)。然后,你需要在布局文件的开头申明自定义命名空间xmlns:app="http://schemas.android.com/apk/res-auto"。现在,可以开始使用RoundCornerTextView 进行创作了。

属性说明

android:layout_width="50dp"

android:layout_height="50dp"

app:corner="25dp" //设置圆角。会同时作用于填充和边框(如果边框存在的话)。如果要设置为圆形,只需要把该值设置为宽或长的1/2即可。

app:solid="@color/red" //设置填充颜色

app:stroke_color="@color/black" //设置边框颜色

app:stroke_width="2dp" //设置边框的宽度。

app:state_drawable="@drawable/vector_emoji_1" //放置一个drawable在背景上。默认居中显示。

app:state_drawable_mode="center" //设置drawable的显示模式。可选值如下:

// left、top、right、bottom、center(默认值)、leftTop、rightTop、leftBottom、rightBottom、fill(充满整个RoundCornerTextView)

app:isShowState="true" // boolean类型。是否显示drawable。这在控制状态时十分有用。

app:text_stroke="true" // boolean类型。是否启用文字描边模式。注意,启用这个模式之后通过setTextColor()设置的颜色将会被覆盖。

app:text_stroke_color="@color/black" // 文字的描边颜色。默认为Color.BLACK。

app:text_stroke_width="1dp" // 文字描边的宽度。

app:text_fill_color="@color/blue" // 文字填充的颜色。默认为Color.BLACK。

app:autoAdjust="true" // boolean类型。是否启用自动调整功能。具体调整什么,需要在Java中为RoundCornerTextView实现一个TextAdjuster。

//当你启用这个功能而没有实现自己的TextAdjuster时,RoundCornerTextView会启用默认的TextAdjuster。它会按照一定的规则调整文字大小。

/>

以上这些属性,你均可以在Java中进行动态的设置。同时也能够获得它们的值。例如:

mRoundCornerTextView.setCorner(10);

mRoundCornerTextView.getCorner();

TextAdjuster

如果你实现了TextAdjuster ,它将会在绘制文字之前被调用。因此,你可以根据需求在文字绘制前进行一些操作,例如默认的字体大小调整。如果你希望停止这种变化,只需要调用setTextAdjuster(null)。

mRoundCornerTextView.setTextAdjuster(v->{

// 在这里进行一些操作,它们将在文字开始被绘制的前一刻被执行

});

链接

如果你觉得还不错的话,那么感谢你关注我哦,或者给我点个赞哦。

你可能感兴趣的:(java描边)