文字描边--效果

package com.bn.ex12d;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint.Style;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.TextView;
/*
 * StrokeTextView的目标是给文字描边
 * 实现方法是两个TextView叠加,只有描边的TextView为底,实体TextView叠加在上面
 * 看上去文字就有个不同颜色的边框了
 */
public class StrokeTextView extends TextView {

    private TextView borderText = null;///用于描边的TextView

    public StrokeTextView(Context context) {
        super(context);
        borderText = new TextView(context);
        init();
    }

    public StrokeTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        borderText = new TextView(context,attrs);
        init();
    }

    public StrokeTextView(Context context, AttributeSet attrs,
            int defStyle) {
        super(context, attrs, defStyle);
        borderText = new TextView(context,attrs,defStyle);
        init();
    }

    public void init(){
        TextPaint tp1 = borderText.getPaint();
        tp1.setStrokeWidth(18);                                  //设置描边宽度
        tp1.setStyle(Style.STROKE);                             //对文字只描边
        borderText.setTextColor(getResources().getColor(R.color.colorSeleter17));  //设置描边颜色
        borderText.setGravity(getGravity());
    }

    @Override
    public void setLayoutParams (ViewGroup.LayoutParams params){
        super.setLayoutParams(params);
        borderText.setLayoutParams(params);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        CharSequence tt = borderText.getText();

        //两个TextView上的文字必须一致
        if(tt== null || !tt.equals(this.getText())){
            borderText.setText(getText());
            this.postInvalidate();
        }
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        borderText.measure(widthMeasureSpec, heightMeasureSpec);
    }

    protected void onLayout (boolean changed, int left, int top, int right, int bottom){
        super.onLayout(changed, left, top, right, bottom);
        borderText.layout(left, top, right, bottom);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        borderText.draw(canvas);
        super.onDraw(canvas);
    }

}

  

文字描边--效果

时间: 2024-08-29 19:18:00

文字描边--效果的相关文章

CSS3 利用 text-shadow 实现文字描边效果

实现效果: 效果代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <style> h2{color:#fff;text-shadow:1px 0px 0px pink,-1px 0px 0px pink,0px 1px 0px pink,0p

用CSS3实现文字描边效果【效果在这儿,创意在你!】

CSS3作为新兴的前端技术可以实现很多复杂变化的效果,比如文字描边. 这里主要用到text-shadow属性,顾名思义就是为文字加上阴影效果.例: Html代码   text-shadow:10px 5px 2px #f60; 各位置参数说明: Html代码   text-shadow:x位移 y位移 模糊程度 颜色 其中:x位移和y位移表示阴影相对文字的偏移值,可以为负值. 现在说正题,这种思路其实很简单:对四个方向都作出模糊程度为零的1px阴影. 写法如是: Html代码   -webkit

Java Graphics2D 画出文字描边效果

在CSDN看到的,在此记下. (http://bbs.csdn.net/topics/390703095) import javax.swing.*; import java.awt.*; import java.awt.font.GlyphVector;   public class Test extends JComponent {     public static void main(String[] args) {       SwingUtilities.invokeLater(ne

PPT小技巧:PPT中怎么给文字添加描边效果

很多时候在色彩丰富的PPT中由于背景颜色的关系,文字往往并不能清晰呈现,这个时候我们需要给PPT中的文字添加描边效果,这样突出需要显示的文字了.想必大家一般给文字添加描边效果都是在PS中进行操作的吧,今天给大家安利一个PPT小技巧,在PPT中给文字添加描边效果.第一步:打开PPT文件新建一个空白页面.第二步:插入文本框,并在上方输入"1,2,3".第三步:点击绘图工具.第四步:找到导航栏上的"文本轮廓"并点击.第五步:调整文字的描边颜色.第六步:调整文字的描边粗细.

cocos2d-x 利用CCLabelTTF制作文字描边与阴影效果的实现方法

// // myttf.h// // Created by 王天宇 on 14-6-12. // // #ifndef ____SLG__myttf__ #define ____SLG__myttf__ #include <iostream> #include "cocos2d.h" USING_NS_CC; using namespace std; class myttf { public: //给文字添加描边 CCLabelTTF* textAddStroke(cons

ps怎么给文字描边

在设计的时候,单一的文字,往往对人没有多少的吸引力,这就需要我们在文字上加一些文字特效,比如说外发光,描边,投影,等等.在这里我们详细的介绍一下文字的输入,和文字描边的怎么增加,删除的经验.(这些方法不只适用于文字,图片也可以的) 步骤阅读 百度经验:jingyan.baidu.com 工具/原料 电脑 photoshop 百度经验:jingyan.baidu.com 方法/步骤 1 首先我们要新建一个图层,文件>新建,建一个属于自己的文档. 步骤阅读 2 然后利用左侧的T(文字工具),输入自己

WPF文字描边的解决方法

 由于项目原因,今天研究了一下午WPF的文字描边,网上这方面的资料奇少,搞了半天才发现强大的WPF原来不直接支持文字描边啊.最后求助于MSDN,找到了方案,和大家分享一下: 主要思路:用FormattedText将字符串转换为Geometry,再在重写的OnRender(DrawingContext drawingContext)方法中绘制Geometry.效果如图. 组件的主要属性: Text属性设置文字 Fill属性设置文本本身的画刷 Stroke属性是描边画刷 StrokeThickn

自定义进度条\文字描边样式\文字上下滚动TextSwithcher的应用

一.自定义进度条 1.<ProgressBar         android:id="@+id/patch_progress"         style="@style/gxProgressStyle"         android:layout_width="match_parent"         android:layout_height="12dp"         android:layout_alig

一分钟教你如何实现唯美的文字描边

前两天有一个原来的同事问我文字描边怎么做,那么今天我们就来说说文字描边这个样式怎么实现. 一.文字描边 -webkit-text-stroke 文字描边 参数:参数1 描边大小 参数2 描边颜色   注意: webkit内核有效 只能使用在谷歌 ,safir有效 -webkit-text-stroke: 1px red; 二.实例 上图的效果我们怎样来实现呢? HTML结构CSS样式 字体样式 字体颜色 文字描本阴影 那我们来看一下具体代码: HTML: <p>我最亲爱的,你过得怎么样?没我的