TextView颜色渐变,特殊字颜色

xiaoxiao2021-02-28  86

字体颜色渐变

Paint p=new Paint(); LinearGradient lg=new LinearGradien(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR);   参数一为渐变起初点坐标x位置,参数二为y轴位置,参数三和四分辨对应渐变终点,最后参数为平铺方式,这里设置为镜像

Gradient是基于Shader类,所以我们通过Paint的setShader方法来设置这个渐变,代码如下: mPaint.setShader(lg); canvas.drawCicle(0,0,200,mPaint); //参数3为画圆的半径,类型为float型。

 

它除了定义开始颜色和结束颜色以外还可以定义,多种颜色组成的分段渐变效果 LinearGradient shader = new LinearGradient(0, 0, endX, endY, new int[]{startColor, midleColor, endColor},new float[]{0 , 0.5f, 1.0f}, TileMode.MIRROR); 其中参数new int[]{startColor, midleColor, endColor}是参与渐变效果的颜色集合, 其中参数new float[]{0 , 0.5f, 1.0f}是定义每个颜色处于的渐变相对位置, 这个参数可以为null,如果为null表示所有的颜色按顺序均匀的分布

特殊字颜色设置

SpannableString ss=getSpannableString("高 "+bean.getHighest(),Contants.RED,"高",Contants.BLACK); highest_tv.setText(ss); private SpannableString getSpannableString(String result,int color,String special,int special_color) { SpannableString ss = new SpannableString(result); ss.setSpan(new ForegroundColorSpan(color), 0, result.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); if(!TextUtils.isEmpty(special)) { int start_index = result.lastIndexOf(special); ss.setSpan(new ForegroundColorSpan(special_color), start_index, start_index+special.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } return ss;}

转载请注明原文地址: https://www.6miu.com/read-41661.html

最新回复(0)