在不是很明显的描边 可以使用 阴影来互动如下:
android:shadowColor 阴影颜色
android:shadowDx 阴影的水平偏移量
android:shadowDy 阴影的垂直偏移量
android:shadowRadius 阴影的范围
真正的描边方法如下:
实现方法是两个TextView叠加,只有描边的TextView为底,实体TextView叠加在上面
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60public class MyTextView2 extends TextView { private TextView borderText = null;///用于描边的TextView public MyTextView2(Context context) { super(context); borderText = new TextView(context); init(); } public MyTextView2(Context context, AttributeSet attrs) { super(context, attrs); borderText = new TextView(context, attrs); init(); } public MyTextView2(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); borderText = new TextView(context, attrs, defStyleAttr); init(); } public void init() { TextPaint tp1 = borderText.getPaint(); tp1.setStrokeWidth(1); //设置描边宽度 tp1.setStyle(Paint.Style.STROKE); //对文字只描边 borderText.setTextColor(Color.GREEN); //设置描边颜色 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); } }
产考:
http://www.oschina.net/code/snippet_586849_37287
最后
以上就是俊逸哈密瓜最近收集整理的关于TextView 文字描边的全部内容,更多相关TextView内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复