最近我想用我的新项目做一些艺术性的事情,如标题所示,添加背景图像作为文本的背景,而不是典型的恒定颜色.具体来说,我有一个这个文本的渐变图像.
像这样的东西
通常我会期望一个xml drawable资源文件类型解决方案,但是非常感谢任何简单的解决方案
编辑:
感谢所有着色器解决方案,但是为了问题,只有提供图像背景解决方案的答案才会被接受/给予赏金
你可以BitmapShader在TextView油漆上涂上一层.
myTextView.getPaint().setShader(new BitmapShader(myBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
Run Code Online (Sandbox Code Playgroud)
如果您不想使用图像,还有其他类型的着色器.文档在这里.
着色器是在绘制过程中返回水平颜色范围的对象的基类.Shader的子类安装在Paint中,调用paint.setShader(着色器).之后,使用该绘制绘制的任何对象(位图除外)都将从着色器中获取其颜色.
Bitmap bitmapObj = BitmapFactory.decodeResource(getResources(),R.drawable.your_image);
Shader shaderObj = new BitmapShader(bitmapObj,Shader.TileMode.REPEAT,Shader.TileMode.REPEAT);
textViewObj.getPaint().setShader(shaderObj);
textViewObj.setText("hello");
Run Code Online (Sandbox Code Playgroud)
你应该调用正确的Shader.TileMode
你也可以关注