android文字描边功能的实现

这里也要简单说一下,这些小模块并不是我原创,也是当时查资料找到的,由于时间比较久,原文链接已经忘记了,所以这里就不列出引用链接了。不过这些代码我都修改、完善过,也添加了一些注释,希望对大家有帮助。

文字描边这个功能挺实用的,如果是单一背景下显示文字,文字描边也可起到装饰作用。如果是复杂背景下,尤其是在不同图片背景下显示文字,因为文字颜色很容易和图片背景相似,这样导致文字看不清楚,用户体验不佳。如果文字经过不同颜色描边后,文字轮廓部分一种颜色,文字内部另一种颜色,因为一般情况下,图片要么和文字轮廓颜色相近,要么和文字内部颜色相近,这样不管图片背景多复杂,文字都会整体显示。

我这里使用的方法是重写TextView方式。

下面是相关代码,整体比较简单,很容易懂。

继承的TextView文字描边类如下:

public class StrokeTextView extends TextView { private TextView outlineTextView = null; public StrokeTextView(Context context) { super(context); outlineTextView = new TextView(context); init(); } public StrokeTextView(Context context, AttributeSet attrs) { super(context, attrs); outlineTextView = new TextView(context, attrs); init(); } public StrokeTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); outlineTextView = new TextView(context, attrs, defStyle); init(); } public void init() { TextPaint paint = outlineTextView.getPaint(); paint.setStrokeWidth(3);// 描边宽度 paint.setStyle(Style.STROKE); outlineTextView.setTextColor(Color.parseColor("#45c01a"));// 描边颜色 outlineTextView.setGravity(getGravity()); } @Override public void setLayoutParams (ViewGroup.LayoutParams params) { super.setLayoutParams(params); outlineTextView.setLayoutParams(params); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); // 设置轮廓文字 CharSequence outlineText = outlineTextView.getText(); if (outlineText == null || !outlineText.equals(this.getText())) { outlineTextView.setText(getText()); postInvalidate(); } outlineTextView.measure(widthMeasureSpec, heightMeasureSpec); } @Override protected void onLayout (boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); outlineTextView.layout(left, top, right, bottom); } @Override protected void onDraw(Canvas canvas) { outlineTextView.draw(canvas); super.onDraw(canvas); } }

布局文件如下:

<com.my.teststroketextview.StrokeTextView android:id="@+id/test_stroketextview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:textSize="25sp" android:textColor="@color/dark_gray" android:text="@string/hello_world" />

调用代码如下:

private StrokeTextView test_stroketextview = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); test_stroketextview = (StrokeTextView)findViewById(R.id.test_stroketextview); test_stroketextview.setText("Hello world!"); }

如果想更改文字描边宽度,或者描边颜色,需要修改上面的StrokeTextView类,当然也可以把这个类设计的更灵活些,这样就可以动态的修改描边宽度或者描边颜色。

以上就是android中文字描边功能的实现实例,希望本文对大家学习android开发有所帮助。请大家多多支持脚本之家。

时间: 2024-09-26 19:03:40

android文字描边功能的实现的相关文章

android文字描边功能的实现_Android

这里也要简单说一下,这些小模块并不是我原创,也是当时查资料找到的,由于时间比较久,原文链接已经忘记了,所以这里就不列出引用链接了.不过这些代码我都修改.完善过,也添加了一些注释,希望对大家有帮助. 文字描边这个功能挺实用的,如果是单一背景下显示文字,文字描边也可起到装饰作用.如果是复杂背景下,尤其是在不同图片背景下显示文字,因为文字颜色很容易和图片背景相似,这样导致文字看不清楚,用户体验不佳.如果文字经过不同颜色描边后,文字轮廓部分一种颜色,文字内部另一种颜色,因为一般情况下,图片要么和文字轮廓

求助,谁做过android图片编辑器的文字编辑功能

问题描述 求助,谁做过android图片编辑器的文字编辑功能 最近在做一个图片编辑器,需要点击一个文字编辑按钮后,能在图片上拉出一个矩形框,之后能在这个矩形框内进行文字编辑,就是绘图工具提供的类似功能,想求助一下谁有这方面的经验,能都提供一下思路,或者谁有成品给能否看一下源码,谢谢了 解决方案 这个里面或许可以找的到.http://www.manonggu.com/biancheng/61 . 解决方案二: 让图片做背景 放上一个textview 最后用android截图功能 截取一张新图 ..

Android 自定义控件实现显示文字的功能

Android 自定义控件实现显示文字的功能 自定义控件-–逐个显示文字 ONE Goal ,ONE Passion ! 前言: 今天要实现的效果时.让我们的文字一个一个显示出来.上效果图吧: 实现原理: 1,拿到要显示的文字. 2,计算文字显示的速率 字体显示的速度 v = 总的字体长度 / 总的显示时间 3,将文字根据速率显示到控件上. 自定义View: public class printTextView extends TextView { /** * 字体显示出来的时间 */ priv

Fireworks MX给文字描边

给文字描边是常见的图像处理功能. 1.在画布上,使用输入文字,实例中字体选择 . 2.单击指针工具,然后选中画布上的文字,属性检查器中的描边颜色框就会出现. 3.单击描边颜色框,在出现的对话框中单击"笔触选项". 4.在出现的对话框中,根据需要设置. 5.描边后的文字.

Coreldraw中的文字描边不能加轮廓线问题

问:Coreldraw中的文字描边不能加轮廓线怎么办?有时文字描边后文字还会变细? 答:中文版的CD都不支持直接文字加粗功能,我们要解决这个问题只有通过调节轮廓线的粗细来实现. 具体步骤是:按F12,调好你需要的轮廓线粗细,再上色即可. 利用这一特点,我们还可以做多层次的描边:从后到前依次排列不同粗细轮廓线和不同色彩的同字体,以实现多种色彩重叠的效果,这在广告及设计中常用. 合理利用好对齐中的快捷键:RL,CE,TB会大大提高此效率. 问:文字描边后文字变细怎么办? 答:其实解决方法很简单,右键

Photoshop制作文字描边教程

在图片的后期处理中,图片上的文字就如男人的手表.女人的首饰一样,适当而精彩的文字能给图片起到点睛的装饰作用.当然文字的添加,并不是单纯地打字上图那么简单,无论是构图.编排.修饰都要反复斟酌,很多软件也相应推出一些文字修饰功能,比如文字描边就是其中比较常用的一种. 图1 文字添加了描边后,会更立体也更突出.但是每款软件在完成文字描边的方法过程不尽相同,特地带来本文对 Photoshp CS3 和美图秀秀这两款常用图片处理软件有关文字描边的横向测评. 一.评测过程 1.Photoshop(以下简称P

Weex Android 文字渲染优化

Weex Android 文字渲染优化 背景 在做Weex Android适配工作的时候,发现当Text没有设置高度,需要Weex根据文字内容.样式,计算出宽高的时候,在小米手机上可能会出现文字截断现象. 例如,前端期望如下图所示的渲染效果: 然而在小米手机上的渲染效果却是下面这样,默认标题那一段最后一行的文本被截断了: 原因 在Android系统中,View的渲染可以分为Measure,Layout,Draw三步,对于Measure这一步,Weex和原生Android略有不同: 在Androi

Android实现搜索功能并本地保存搜索历史记录_Android

本文实例为大家分享了Android实现搜索功能,并且需要显示搜索的历史记录,供大家参考,具体内容如下 效果图: 本案例实现起来很简单,所以可以直接拿来嵌入项目中使用,涉及到的知识点: - 数据库的增删改查操作 - ListView和ScrollView的嵌套冲突解决 - 监听软键盘回车按钮设置为搜索按钮 - 使用TextWatcher( )实时筛选 - 已搜索的关键字再次搜索不重复添加到数据库 - 刚进入页面设置软键盘不因为EditText而自动弹出 代码 RecordSQLiteOpenHel

js实现文字截断功能_javascript技巧

先前用jq做了一个文字截断功能,但是不用jq的项目要实现此功能还要引如jq显得过于麻烦.这里写了一个js的文字截断功能.直接上代码.  HTML(测试用的):  <div>我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="10" >我是pox我是pox我是pox我是pox我是