android文字描边功能的实现_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开发有所帮助。请大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 字体描边
, 文字描边颜色
描边
css实现文字描边、android 文字描边、android 给文字描边、android搜索功能实现、android 登陆功能实现,以便于您获取更多的相关知识。

时间: 2024-10-30 10:13:27

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

android文字描边功能的实现

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

Android实现登录功能demo示例_Android

本文实例讲述了Android实现登录功能的方法.分享给大家供大家参考,具体如下: 安卓,在小编实习之前的那段岁月里面,小编都没有玩儿过,如果说玩儿过,那就是安卓手机了,咳咳,敲登录的时候有种特别久违的熟悉,这种熟悉的感觉就和当时敲机房收费系统一样,那叫一个艰难啊,不过小编相信,在小编的IT成长之路上,正是因为有了这些艰难险阻陪伴着小编一起成长,才让小编更加勇敢坚强,勇敢的面对一个又一个bug,坚强的敲完一行行代码,经过了几天的研究登录一条线的功能已经实现,现在小编就来简单的总结一下,还请小伙伴们

Android图片裁剪功能实现代码_Android

在Android应用中,图片裁剪也是一个经常用到的功能.Android系统中可以用隐式意图调用系统应用进行裁剪,但是这样做在不同的手机可能表现出不同的效果,甚至在某些奇葩手机上还会出其他更奇怪的问题,所以调用系统功能进行图片裁剪在很多时候对我们来说并不是一个好的选择.这时候就需要我们自己去实现这种裁剪功能了. 功能分析 要完成图片裁剪的功能,我们需要先知道图片裁剪的功能有哪些.图片裁剪之前,我们需要有一个框指示我们需要裁剪的样式合大小.图片显示出来后大小和位置可能并不是我们所期望的,所以我们还需

android截屏功能实现代码_Android

android开发中通过View的getDrawingCache方法可以达到截屏的目的,只是缺少状态栏! 原始界面 截屏得到的图片 代码实现 1. 添加权限(AndroidManifest.xml文件里) 复制代码 代码如下: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 2. 添加1个Button(activity_main.xml文件) <RelativeL

Android ListView分页功能实现方法_Android

通过本次小Demo我学到了: 1.ListView的小小的一个分页功能 2.加深了对自定义控件的理解 3.对ListView的优化 4.对BaseAdapter的使用 5.自定义Adapter 6.接口的回调 要实现下面的效果--当拖动ListView到底部的时候,显示一个ProgressBar和一个"正在加载..."的TextView.并且过两秒钟后,在下面加载出新的数据.项目的目录结构和程序要实现的效果如下:      首先是布局部分: 我为了实现此效果,首先在布局文件中新建了一个

android实现倒计时功能的方法_Android

前言   在打开爱奇艺等app的欢迎界面的时候,右上角有一个倒计时的控件.倒计时完了以后进入主界面.现在我们来实现这个功能.  方法一: 利用java的类Timer,TimerTask还有android的Handler 界面welcome_activity.xml  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.an

Android自定义桌面功能代码实现_Android

先上运行效果图 首先我们要把一张自己喜欢的图片放到sdcard中,总之,只要我们可以获取这个图片就可以了. 我这里是放在sdcard中的,可以在eclipse中用鼠标点击导入,比较方便,也可以在命令行中运行: C:\Documents and Settings\Administrator>adb push "C:\Documents and Settings\Administrator\My Documents\My Pictures\MM-320x480.png" /sdcar

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

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

完整的Android表情功能处理方案_Android

Android表情功能处理方案概述 1.原理和实现思路 2.表情图片显示 3.表情面板 4.表情的输入框插入和删除 5.表情添加脚本 Android中表情功能,一般都不是用ImageView去设置图片实现的,表情一般会嵌套在文本之中,那么如何实现呢,这里就介绍一下其中的原理,此外还有相关功能的实现思路和具体代码. 先看下良心动态图 1.原理和思路 a.表情内容的数据格式表情看上去是图片,但是在数据传输的时候本质上是一个特殊文本: 比如QQ表情就是一个 "/表情字母"的结构,比如害羞的表