简短问题:
假设我有一个 TextView,并且我希望文本本身(而不是背景)有一个可绘制集(而不仅仅是纯色),我应该怎么做?
我找到的唯一解决方案是 this one ,但它仅适用于渐变颜色,我希望能够使用任何可绘制的。
最佳答案
好吧,我想我已经找到了一个可能的解决方案,但我有一些关于它的注释:
它不适用于任何可绘制对象。它用于位图,因此您需要以某种方式将其转换为位图。
它要求您知道 textView 的大小(您可以使用 this 来实现此目的)
它要求您有足够的内存来容纳与 textView 大小相同的缩放位图。
不确定如何使其按字符或按行工作。
代码如下:
public static void setBitmapOnTextView(final TextView tv, final Bitmap bitmap) {
final TileMode tile_mode = TileMode.CLAMP;
final int height = tv.getHeight();
final int width = tv.getWidth();
final Bitmap temp = Bitmap.createScaledBitmap(bitmap, width, height, true);
final BitmapShader bitmapShader = new BitmapShader(temp, tile_mode, tile_mode);
tv.getPaint().setShader(bitmapShader);
}
希望有更好的解决方案。
关于android - 如何将可绘制对象设置为 TextView 的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906301/