android – 如何将居中的多色文本写入画布?

android – 如何将居中的多色文本写入画布?,第1张

概述我正在写一个线程的画布. public void draw(Canvas canvas) { Paint p = new Paint(); p.setAntiAlias(true); p.setTextSize(30); p.setColor(Color.WHITE); p.setTextAlign(Paint.Align.CENTER); canvas.drawText 我正在写一个线程的画布.
public voID draw(Canvas canvas) {  Paint p = new Paint();  p.setAntiAlias(true);  p.setTextSize(30);  p.setcolor(color.WHITE);  p.setTextAlign(Paint.Align.CENTER);  canvas.drawText("Centered",xCentre,yCentre,p);}

当我有一个多色的SpannableStringBuilder我想写入画布时我的问题就开始了,我不知道怎么做. SpannableStringBuilder有一个drawText()方法,我一直无法使用.或者是否有其他方法将字符串写入画布,其中一些字母具有不同的颜色?

解决方法 我自己找到了解决方案.

您可以计算字符串在画布上绘制后的宽度.然后你知道在改变颜色之后还在哪里继续向画布绘制文本.

package com.example;import androID.app.Activity;import androID.content.Context;import androID.graphics.*;import androID.os.Bundle;import androID.vIEw.VIEw;public class MyActivity extends Activity {  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(new SampleVIEw(this));  }  private static class SampleVIEw extends VIEw {    public SampleVIEw(Context context) {      super(context);    }    @OverrIDe    protected voID onDraw(Canvas canvas) {      canvas.drawcolor(color.WHITE);      String blackText = "black";      String redText = " red";      Paint mPaint = new Paint();      mPaint.setAntiAlias(true);      mPaint.setTextSize(30);      mPaint.setTypeface(Typeface.create(Typeface.serif,Typeface.ITAliC));      float canvasWIDth = canvas.getWIDth();      float blackTextWIDth = mPaint.measureText(blackText);      float sentenceWIDth = mPaint.measureText(blackText + redText);      float startpositionX = (canvasWIDth - sentenceWIDth) / 2;      mPaint.setTextAlign(Paint.Align.left);      canvas.translate(0,80);      mPaint.setcolor(color.BLACK);      canvas.drawText(blackText,startpositionX,mPaint);      mPaint.setcolor(color.RED);      canvas.drawText(redText,startpositionX + blackTextWIDth,mPaint);    }  }}
总结

以上是内存溢出为你收集整理的android – 如何将居中的多色文本写入画布?全部内容,希望文章能够帮你解决android – 如何将居中的多色文本写入画布?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1134174.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存