如何在Java(Android)中向位图添加纹理

时间:2019-01-29 04:02:19

标签: android bitmap android-bitmap

我创建了一个应用程序,该程序允许将随机渐变背景设置为设备墙纸。我想为用户提供向墙纸添加纹理的选项。我已经找到了在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...

在此先感谢大家:)

1 个答案:

答案 0 :(得分:0)

我认为您应该手动绘制此类纹理。例如,您可以创建半透明的渐变着色器,并沿着两个对角线绘制多个矩形,并对每个矩形进行一些旋转和移动。