- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Android中是否可以用canvas实现如下图片?
我想在黄色的红色层上有一个洞,而不仅仅是一个圆圈。我在我的 onDraw()
-Method 中尝试了以下代码(但失败了):
canvas.drawBitmap(yellow, 0, 0, paint);
canvas.drawBitmap(red, 0, 200, paint);
Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
canvas.drawCircle(300, 300, radius, p);
但是当我使用这段代码时,它在两个位图上都打了一个洞。最后,这个应用程序应该是一个有球、洞和其他东西的迷宫。当球落入洞中时,它应该出现在红色位图下方。这有可能实现吗?
答案:
如果有人遇到同样的问题:使用 View 而不是 SurfaceView。那是我的错,因为无法将 SurfaceView 的 bg 设置为透明。
最佳答案
我认为您误解了 Canvas /位图的工作原理。没有存储图层或对象(除非您存储它们)。它只是显示图像的逐像素表示。红色方 block 上的黄色圆圈 就是您在上图中显示的内容。
如果你真的想要一个红色层,你必须合成两个位图。在一张位图中的红色方 block 上绘制孔,在一张位图中绘制黄色层。在 Canvas 上,绘制黄色位图,然后在顶部绘制“带孔的红色正方形”位图。
关于Android canvas - 画一个洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15841719/
我想以 headless 模式(屏幕上根本没有 GUI)将 JPanel 绘制到 BufferedImage 中。 final JPanel panel = createPanel(); panel.
我是 Canvas 的新手,正在尝试创建看起来逼真的 float 粒子动画。 目前,我正在创建 400 个随机散布在 400x400 Canvas 上的粒子。 然后,在每个 requestAnimat
有没有办法在悬停时停止悬 float 画? :hover 这是一个显示动画的链接: https://codepen.io/youbiteme/pen/RprPrN 最佳答案 只需为您的 svg 悬停添
我想在谷歌地图上绘制覆盖图,其中除了特定点周围 1.5 公里半径以外的所有内容都被遮蔽了。为此,我尝试使用带有大量边框的圆圈,所以我会在边框中放置透明中心和覆盖颜色来实现这一点,但它无法渲染。
我正在尝试通过扩展类 UIView 来创建自定义 View ,该类可以在自定义 View 的中心显示一个圆圈。为了添加自定义绘图,我重写了 draw(_ rect: CGRect) 方法,如下所示。
我是一名优秀的程序员,十分优秀!