目标是创建复合形状并添加浮雕效果.我可以成功创建如下图所示的形状.
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-如何组成多个形状并添加浮雕?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)