如何使用Android canvas.drawText很好地剪切长文本?

如何使用Android canvas.drawText很好地剪切长文本?,android,android-layout,android-widget,android-custom-view,Android,Android Layout,Android Widget,Android Custom View,我正在开发自己的自定义控件。它是一个矩形,里面有一个文本。文本可能比矩形长,所以我需要剪切它。请帮助我风格剪贴文本,使它可以理解,有更多的文本。最后一个字符应具有不透明度 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); // draw button paint.setColor(Color.parseColor("#b33232")); canvas.drawRect(0, 0, getWidth(), getHeight(), paint); p

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

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();
  • 第一张图片就是我拥有的
  • 其次是我需要得到的

我想TextUtils.ellipsize就是你想要的

检查这个。。

您是否意识到您已经可以通过TextView获得这种效果?看看安卓:ellipsize=“marquee”。是的,但我用的是画布。有可能将这种方法与drawText一起使用吗?但如何使用透明的最后字符实现设计呢?我认为android的fadingEdge for view会有所帮助