Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – Gradient在SurfaceView中显示为带状,但在普通视图中看起来非常流畅大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是,当在SurfaceView中绘制一个简单的测试图像(带有渐变填充的矩形)时,渐变具有颜色条带.在简单的扩展视图中使用相同的渐变绘制完全相同的矩形时,渐变看起来非常平滑,并且与我期望的32位颜色一样好.

这是在同一个Activity中的同一布局中使用测试View放置的测试SurfaceView并排发生的.

有关信息,在活动类我打电话window.setFormat(PixelFormat.RGBA_8888)切换活动到32位颜色,因为这是在过去的溶液,消除在梯度(绑扎然而,笔者认为,这是没有某个Android级别需要更长时间,认为32位).我的minSdkVersion是8.

出现在简单扩展View和SurfaceView的onDraw()中的测试代码是:

Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    paint.setAntiAlias(false);
    paint.setFilterBitmap(false);
    paint.setDither(false); 
    Shader shader = new LinearGradient(
            0,200,new int[]{0xff150d2f,0xff432b96},null,Shader.TileMode.CLAMP
            );

    paint.setShader(shader);    
    canvas.drawRect(0,getWidth(),getHeight(),paint);

以下是显示上面的SurfaceView和下面的普通View的屏幕截图.我意识到这个例子中的条带非常微妙;当渐变扫过较小的颜色带时,它会更加明显.

有什么建议吗?

崔佛

解决方法

最后通过将其添加到SurfaceView的构造函数中找到了解决方案:
getHolder().setFormat(PixelFormat.RGBA_8888);

大佬总结

以上是大佬教程为你收集整理的android – Gradient在SurfaceView中显示为带状,但在普通视图中看起来非常流畅全部内容,希望文章能够帮你解决android – Gradient在SurfaceView中显示为带状,但在普通视图中看起来非常流畅所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。