前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android实现EditText文本颜色渐变

Android实现EditText文本颜色渐变

作者头像
程序员飞飞
发布2020-02-27 16:16:52
发布2020-02-27 16:16:52
3.3K00
代码可运行
举报
文章被收录于专栏:Android&Java技术Android&Java技术
运行总次数:0
代码可运行

Android实现EditText文本颜色渐变

先上效果图

刚开始想着先是设置textColor属性就可以了,然后写了个一个带渐变的shap感觉不好使,于是乎就自定义解决,代码如下

代码语言:javascript
代码运行次数:0
运行
复制
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.widget.EditText;

public class MyEditText extends EditText {

    public MyEditText(Context context) {
        this(context, null);
    }

    public MyEditText(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public MyEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    private Paint mPaint;
    private int mViewHeight = 0;
    private Rect mTextBound = new Rect();
    private LinearGradient mLinearGradient;

    @Override
    protected void onDraw(Canvas canvas) {
        mViewHeight = getMeasuredHeight();
        mPaint = getPaint();
        String mText = getText().toString();
        mPaint.getTextBounds(mText, 0, mText.length(), mTextBound);
        mLinearGradient = new LinearGradient(0, 0, 0, mViewHeight,
                new int[]{0xFF8EDA4D, 0xFF4EB855}, null, Shader.TileMode.REPEAT);
        mPaint.setShader(mLinearGradient);
        canvas.drawText(mText, getMeasuredWidth() / 2 - mTextBound.width() / 2, getMeasuredHeight() / 2 + mTextBound.height() / 2, mPaint);
    }

}

我这里实现的是上下的渐变色,当然每个人的需求都不一样,有的要实现左右渐变色,只要在这句中设置其属性即可mLinearGradient = new LinearGradient(0, 0, 0, mViewHeight, new int[]{0xFF8EDA4D, 0xFF4EB855}, null, Shader.TileMode.REPEAT)

本文首发于我的微信公众号,更多干货文章,请扫描二维码订阅哦:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/03/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Android实现EditText文本颜色渐变
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档