【问题标题】:How to nicely cut long text using Android canvas.drawText?如何使用 Android canvas.drawText 很好地剪切长文本?
【发布时间】:2013-04-30 15:28:46
【问题描述】:

我正在开发自己的自定义控件。它是一个长方形,里面有文字。文本可能比矩形长,所以我需要剪切它。请帮助我设置剪辑文本的样式,以使文本更多是可以理解的。最后一个字符应该有不透明度。

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
// draw button
paint.setColor(Color.parseColor("#b33232"));
canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
paint.reset(); 

// draw text
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
paint.setTextSize(16);
canvas.drawText("My very very long text", 5, 24, paint);
paint.reset();
  • 第一张图片就是我所拥有的
  • 第二个是我需要得到的

【问题讨论】:

  • 您知道您已经可以使用 TextView 获得这种效果吗?看看android:ellipsize="marquee"
  • 是的,但我使用的是 Canvas。是否可以将此方法与 drawText 一起使用?

标签: android android-layout android-widget android-custom-view


【解决方案1】:

我认为 TextUtils.ellipsize 是你想要的。

检查这个.. TextUtils

【讨论】:

  • 但是如何实现带有透明最后一个字符的设计?
  • 我认为android的fadingEdge for view可以提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多