安卓 - 使用动画制作构件

9
我在应用这里找到的3D转换时,屏幕上出现了视觉伪影问题。我已将其更改为绕x轴旋转而不是y轴。当我进行完整的180度旋转(一开始向你远离的顶部)时,在每个应用此旋转的其他视图的底部区域(底部10-20%)会出现单像素线条伪影。我将选择器用作LinearLayout的背景,然后将此动画应用于它。有人能想到解决此问题的快速方法吗?
谢谢任何帮助!

刚遇到相同的问题,我想补充一下的是,在1.6-3.0之前的设备上,我遇到了一些问题,但在3.0及更高版本的设备上启用硬件加速可以解决这个问题。 - Matt Gaunt
2个回答

11

事实证明,在每个动画步骤中,只需使父视图失效即可。如果您有自定义的Animation对象,则可以在Animation.applyTransformation(...)内部执行此操作。


1
很高兴能为您服务 - 我知道回答自己的问题总有一天会派上用场 :) - Dori
1
我也遇到了这个问题,解决了我遇到的问题。这个 bug 只似乎影响 2.3 及以下设备(包括 Kindle Fire),在我的各种 4.0+ 设备上看起来很好。 - jjb

0

我曾经遇到过一个类似的问题,涉及到2D动画,其中一个视图被移出了屏幕(超出了父视图)。我的解决方案非常简单。在我的自定义视图中,我只需使父视图无效化,以便在每一帧重新绘制它。

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    ((View) this.getParent()).invalidate();
    canvas.drawBitmap(icon, bm_x, bm_y, mPaint);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接