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

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

概述目标是创建复合形状添加浮雕效果.我可以成功创建如下图所示的形状.woodPaint=newPaint();woodPaint.setAntiAlias(true);woodBitmap=BitmapFactory.decodeResource(context.getResources(),R.drawable.wood);woodShader=newBitmapShader(woodBitma

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

    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模式设置为关闭搬运工的某种风味,但这不会影响将浮雕蒙版分别应用于每种形状的事实.

谢谢你的帮助!

编辑:
如Orabîg所示,您必须使用设置了浮雕滤镜的涂料绘制一条路径.注意:方法setMaskFilter()是打开硬件加速后不起作用的少数方法之一.通过禁用该活动的硬件加速,我解决了运行软糖豆的手机遇到的问题.您可以选择任意level禁用硬件加速:

>应用程序>活动>窗口>视图

干杯!

解决方法:

好吧,您只需要一种浮雕效果,因此您应该只绘制一种形状.

因此,您应该使用Canvas.drawPath()方法.

您只需使用以下方法定义Path对象:

首先定义3个RectF对象,这将是最左侧的圆(想像其后的圆圈),最右侧的圆和滑动的边框:

您可能需要做一些额外的数学运算才能确定用于Box2的正确角度(它们取决于圆和整个矩形的相应大小)

祝好运 !

总结

以上是内存溢出为你收集整理的android-如何组成多个形状并添加浮雕?全部内容,希望文章能够帮你解决android-如何组成多个形状并添加浮雕?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1211130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存