Android中对字体进行描边
2018-04-04 14:41
1061 查看
项目过程中,有时需求需要对字体进行描边的效果,本文主要通过自定义重新TextView来实现描边的处理,话不多说,直接上代码:
自定义TextView:
在布局文件中使用该自定义文件:
自定义TextView:
package com.showly.an.zb.liveSelf.util; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.text.TextPaint; import android.util.AttributeSet; import android.view.ViewGroup; import android.widget.TextView; public class StrokeTextView extends android.support.v7.widget.AppCompatTextView { 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(1);// 描边宽度 paint.setStyle(Paint.Style.STROKE); outlineTextView.setTextColor(Color.parseColor("#000000"));// 描边颜色 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.showly.an.zb.liveSelf.util.StrokeTextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="59:60" android:textColor="#ffffff" android:textSize="13sp" />
相关文章推荐
- android 使用LinearGradient进行字体渐变的效果
- iMindMap Android中字体格式该怎么进行修改
- Android字体描边
- Android 使用OpenCV 进行书法字体重影比对
- 如何在android环境下进行ttf解析,通过获取文件头信息得到字体名称!
- android 使用LinearGradient进行字体渐变的效果
- Android字体描边
- android 使用LinearGradient进行字体渐变的效果
- android 字体描边
- Android 字体效果:描边、浮雕效果
- Android特殊字体引入,以及描边和投影
- Android点击文字编辑进行缩放、移动和改变字体、颜色的实现
- Android TextView 字体描边效果代码
- GitHub 上排名前 100 的 Android 开源库进行简单的介绍
- android中actionBar中字体颜色设置
- 非root Android 设备用gdbserver进行native 调试的方法
- Android Webview使用自定义字体加载网页
- android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu
- TTLauncherItem中的字体及颜色如何进行修改?
- Android中应用的字体Typeface的设置