Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用硬件层和半透明边框作为背景在旋转视图上显示图形效果_Android_View_Transparency - Fatal编程技术网

Android 使用硬件层和半透明边框作为背景在旋转视图上显示图形效果

Android 使用硬件层和半透明边框作为背景在旋转视图上显示图形效果,android,view,transparency,Android,View,Transparency,我正在尝试从附加屏幕截图上可见的android应用程序中删除图形工件 该视图将旋转,并有一个9面片边框,部分透明度设置为其背景。 其中一个子视图有一个白色背景,不知何故最终在透明边框周围产生了这种奇怪的效果 这似乎只有在软键盘激活且主视图缩小时才会发生 在parentlayout中设置了以下drawfilter: @Override protected void dispatchDraw(Canvas canvas) { canvas.setDrawFilter(new PaintFla

我正在尝试从附加屏幕截图上可见的android应用程序中删除图形工件

该视图将旋转,并有一个9面片边框,部分透明度设置为其背景。 其中一个子视图有一个白色背景,不知何故最终在透明边框周围产生了这种奇怪的效果

这似乎只有在软键盘激活且主视图缩小时才会发生

在parentlayout中设置了以下drawfilter:

@Override
protected void dispatchDraw(Canvas canvas) {
    canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.DEV_KERN_TEXT_FLAG | Paint.SUBPIXEL_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG));
    super.dispatchDraw(canvas);
}
如果没有使用硬件层,工件就会消失。使用没有透明度的边框也是如此

有人知道是什么造成了这种效果,以及如何消除这种效果吗


我在我的一个应用程序中发现了一个类似的工件,上面有一个动画视图。那个神器只出现在我的果冻豆片上。在动画过程中,视图正在缩放和旋转,这会留下一些边的痕迹,就像在屏幕截图中一样。有一个更老的果冻豆版本,这些工件曾经是永久的。由于最新更新,它们仅在动画期间可见,并在动画结束时消失。因为它总是边缘,你可以尝试在你的白纸背景上添加一些填充物。也许这些伪影会消失。屏幕截图来自S3,Android 4.1.2使用NineodelDroids进行旋转和动画。我已经试着在子元素中添加一个填充,甚至一个边距,但这似乎没有帮助。我感觉到了你的痛苦。有时候,这些事情发生了,这给我们这些开发者留下了一个坏的印象,而其他人应该对此负责。你有没有试过用香草动画代替NineoladDroids?您还可以尝试为视图或整个活动打开/关闭硬件加速。我怀疑这是有联系的,因为这是安卓系统相对较新的功能。