gpt4 book ai didi

android - 如何组成多个形状并添加浮雕?

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:40 25 4
gpt4 key购买 nike

目标是创建复合形状并添加浮雕效果。我可以成功创建如下图所示的形状。

    woodPaint = new Paint();
woodPaint.setAntiAlias(true);
woodBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.wood);
woodShader = new BitmapShader(woodBitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
woodPaint.setShader(woodShader);

...

@Override
protected void onDraw(Canvas canvas) {

canvas.drawCircle(handleX, radius, radius, woodPaint);
canvas.drawRoundRect(baseRectF, 25, 25, woodPaint);

super.onDraw(canvas);
}

图片:

然后我添加一个 EmbossMaskFilter

    paintEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 }, 0.1f, 8f, 5f);
woodPaint.setMaskFilter(paintEmboss);

图片:

如您所见,浮雕蒙版分别应用于两个形状。如何将形状组合在一起并将浮雕应用于整个对象?我已经尝试将 xfer 模式设置为一些 porter duff 的味道,但这并不影响浮雕蒙版分别应用于每个形状的事实。

感谢您的帮助!

编辑:正如 Orabîg 所说明的那样,您必须使用设置了浮雕过滤器的颜料绘制一条路径。注意:方法 setMaskFilter() 是少数在硬件加速打开时不起作用的方法之一。我通过禁用 Activity 的硬件加速解决了我在使用运行果冻 bean 的手机时遇到的问题。您可以在任何 level 禁用硬件加速你选择:

  • 应用
  • Activity
  • 窗口
  • View

干杯!

最佳答案

好吧,你只需要一个浮雕效果,所以你应该只画一个形状。

所以你应该使用 Canvas.drawPath() 方法。

您只需使用以下方法定义一个 Path 对象: Path definition steps首先定义 3 个 RectF 对象,它们将是最左边的圆(想象一下它后面的圆)、最右边的和滑动的圆的边界框: boxes definitions您可能需要做一些额外的数学运算来确定用于 box2 的正确角度(它们取决于圆和整个矩形各自的大小)

祝你好运!

关于android - 如何组成多个形状并添加浮雕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14904472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com