如何在 Java (Android) 中为位图添加纹理
How to add texture to bitmap in Java (Android)
我创建了一个允许生成随机渐变背景以设置为设备壁纸的应用程序。我想为用户提供向墙纸添加纹理的选项。我在 xml 中找到了执行此操作的方法,但在 Java 中找不到。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Shader shader = new LinearGradient(0, 0, width, height,
new int[]{colorsArray1, colorsArray2, colorsArray3}, null, Shader.TileMode.CLAMP);
Paint paintGradient = new Paint(Paint.ANTI_ALIAS_FLAG);
paintGradient.setShader(shader);
canvas.drawRect(0, 0, width, height, paintGradient);
以上代码生成了一个位图,该位图是具有三种颜色的渐变。有没有办法给它添加纹理?有可能吗?
This is kinda what my goal is...
在此先感谢大家:)
我认为你应该手动绘制这样的纹理。例如,您可以创建半透明渐变着色器并沿两条对角线绘制多个矩形,并对每个矩形进行一些旋转和移动。
我创建了一个允许生成随机渐变背景以设置为设备壁纸的应用程序。我想为用户提供向墙纸添加纹理的选项。我在 xml 中找到了执行此操作的方法,但在 Java 中找不到。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Shader shader = new LinearGradient(0, 0, width, height,
new int[]{colorsArray1, colorsArray2, colorsArray3}, null, Shader.TileMode.CLAMP);
Paint paintGradient = new Paint(Paint.ANTI_ALIAS_FLAG);
paintGradient.setShader(shader);
canvas.drawRect(0, 0, width, height, paintGradient);
以上代码生成了一个位图,该位图是具有三种颜色的渐变。有没有办法给它添加纹理?有可能吗?
This is kinda what my goal is...
在此先感谢大家:)
我认为你应该手动绘制这样的纹理。例如,您可以创建半透明渐变着色器并沿两条对角线绘制多个矩形,并对每个矩形进行一些旋转和移动。