- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的第一个游戏中,我使用 Canvas 绘制了一些从 alpha 0 到 255 的圆圈(这就像自己制作一个淡入淡出动画)
但是如果你在图片中看到(这张图片在 alpha 230 中捕获),从 alpha 0 到 254 这些圆圈并不平滑!(点击图片看看我的意思)
(只有当 alpha 变为 255 时,圆才会变得平滑) 有什么问题,我该如何解决?
我的代码:我有一个游戏循环,获取 Canvas
canvas = gameView.getHolder().lockCanvas();
然后在我看来,一开始我设置:
paintAlpha = 0;
paint = new Paint();
paint.setAntiAlias(true);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
paint.setStyle(Paint.Style.FILL);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setAlpha(paintAlpha);
paint.setColor(Color.parseColor(color));
然后在每个循环(每个滴答声)中我这样做:
if(paintAlpha < 255) {
paintAlpha+=1;
paint.setAlpha(paintAlpha);
}
canvas.drawCircle(cx, cy, currentRadius, paint);
解决方法:感谢@nitesh。问题是因为 surfaceView 不能给 canvas 设置反别名(在 View 你没有这个问题,我不知道为什么)通过使用 Bitmap 并在其上绘制,最后通过 canvas 绘制位图,问题解决了(而不是直接在 canvas 上绘制)
最佳答案
设置以下属性来绘制对象
paint.setAntiAlias(true);
为了更好地理解和其他方法,请引用此链接 https://medium.com/@ali.muzaffar/android-why-your-canvas-shapes-arent-smooth-aa2a3f450eb5#.p9iktozdi
来自文章
如果满足以下条件,则先绘制位图:
- 你需要持久化图像。
- 你需要绘制透明像素。
- 您的形状不会经常改变和/或需要耗时的操作。
使用抗锯齿绘制平滑的边缘。
尽可能避免在位图上重绘,否则,在重绘之前清除位图。
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (bitmap == null) {
bitmap = Bitmap.createBitmap(200,
200,
Bitmap.Config.ARGB_8888);
bitmapCanvas = new Canvas(bitmap);
}
bitmapCanvas.drawColor(
Color.TRANSPARENT,
PorterDuff.Mode.CLEAR); //this line moved outside if
drawOnCanvas(bitmapCanvas);
canvas.drawBitmap(bitmap, mLeftX, mTopY, p);
}
protected void drawOnCanvas(Canvas canvas) {
canvas.drawCircle(mLeftX + 100, mTopY + 100, 100, p);
}
关于android - Canvas 画不光滑的圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764870/
光滑,如何将查询映射到继承表模型? IE, 我有表A,B,C A是“父”表,B&C是“子”表 我想知道的是我该如何使用平滑模型,以便A将成为抽象的B&C具体类型,而查询A中的一行将导致B或C对象 类似
如果数据库尚不存在,有没有办法轻松创建数据库? Database.forURL("jdbc:mysql://127.0.0.1/database", driver = "com.mysql.jdbc.
我是 Java slick 的新手,我对“相机”的翻译有一个小问题。我有这个代码: package chapterOne; import org.newdawn.slick.Animation; im
我正在尝试使用 Slick 渲染健康栏。我想要一个红色矩形,前面有一个绿色矩形来显示剩余的生命值。这是我到目前为止所拥有的: Rectangle healthBG = new Rect
有一个225px的方 block 。在里面插入一张大尺寸的图片(850 像素)。她走到外面。 看起来像这样: .content {display: inline-block;} .column {fl
我正在用 Java slick 编写游戏,我想添加消息管理。应该有一个 ArrayList,其中包含所有尚未发送的消息。每 2 秒应显示列表中的下一项。 我的逻辑: 在更新方法中,应显示第一条消息。
case class Account(var email:String, var pass:String, var familyId: Int, var accessId: Int, id: Opti
Content should wrap Content should wrap Content should wrap C
我正在使用 JQuery Slick Slider http://kenwheeler.github.io/slick/效果非常好。 我还运行了一个单独的脚本,用于检查页面 url,如果光滑 slid
我知道如何使用 click, scroll 的事件处理函数和其他默认事件。 目前我正在使用一个名为 slick slider 的 slider 插件。并且它工作正常,我想用定义的函数而不是匿名函数替换
我有 slider ,每个 slider 都包含视频作为背景和播放/暂停按钮。尝试通过单击正确的按钮来播放视频,但出现以下行为:我单击第二张幻灯片中的播放按钮,视频从第一张幻灯片中播放。暂停按钮也是如
我正在尝试在我的页面上实现一个光滑的 slider 。在浏览精美的文档时,他们提到要以响应方式使用 slider ,请遵循代码(我在下面发布)。我无法理解断点的用途。谁能给我解释一下代码。我尝试谷歌搜
我遇到了光滑 slider 的问题,我想创建一个应该在光滑 slider 上打开的灯箱,我想在灯箱中添加一些内容,主要问题是我不知道如何我可以将内容添加到灯箱部分吗? $('.works-slides
我正在尝试使用一个 slider ,它附带一个搜索框。此搜索框搜索 slider 中的用户名称。 目前,当用户开始在输入框中键入内容时,搜索框会自动完成全名。 例如,他们输入“Joh”,建议输入“Jo
我一直在尝试创建类似 this 的东西使用 slick.js,我真的无法理解它。 我已经准备好了当前的代码。如何使中心幻灯片图像的宽度和高度为 100% 并为幻灯片添加填充?好像不行。 我真的很感激任
我使用光滑 slider 创建了 slider 。我遇到的问题是在线断点工作正常的宽度。 但是,当我以正常方式写入 html file 时,相同的代码不起作用。谁能帮我这个。从检查中检查并查看正常代码
我正在尝试在输入字段中删除可拖动选项(以便我可以选择文本并使用箭头在字段内导航)。 var slider = $('.slider').slick({ infinite: false,
当它到达 breakpoint 时,如 990px,我在 slick slider 中遇到了问题。它删除了背景并且没有显示任何类型的错误。 iconic 我正在使用这个 javascript 来提
我想将光滑 slider 的点定位在上一个和下一个按钮之间。Slick 提供设置让您定位点/按钮。但它们会互相显示。 这是我的代码: $('.slider').slick({ arrows:
我在网站上创建了一个光滑的 slider 。我可以看到它进入“光滑模式”,但也没有显示我告诉它的幻灯片数量。它们都在那里,我可以通过更改它们的“左”和“不透明度”CSS 值来显示它们。 我将无法复制这
我是一名优秀的程序员,十分优秀!