android - 关于android中的lineargradient

标签 android android-canvas surfaceview

想在SurfaceView中实现LinearGradient效果,但是显示不流畅。它在屏幕上显示一些线条。是显示器本身的原因吗?这是我的代码:

    try {    
        canvas = sfh.lockCanvas(); 
        canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);
        paint = new Paint();   
        linearGradient = new LinearGradient(0,0,0,ScreenH,new int[]{Color.argb(230,255,200, 236),Color.argb(200,255, 153,153)},null,TileMode.CLAMP); 

        paint.setShader(linearGradient);  
        paint.setAntiAlias(true);
        paint.setDither(true);
        canvas.drawPaint(paint);

    } catch (Exception ex) {    
    } finally {     
        if (canvas != null)    
            sfh.unlockCanvasAndPost(canvas);    
    }

最佳答案

你可以使用下面的方法让它变得流畅,

getHolder().setFormat(PixelFormat.RGBA_8888);

关于android - 关于android中的lineargradient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718040/

相关文章:

android - 更改 android.graphics.Path 在 Canvas 上的位置

android - 在android中的imageview Canvas 上绘制透明线

android - SurfaceView 中的自动对焦

java - 适用于 Android 的 BBC iPlayer 广播应用程序 - 滚轮导航

android - 实现 Firebase 实时数据库时,我应该创建一个契约(Contract)类吗?

android - Square Otto 事件总线 - 如何使用 junit 和 robolectric 测试发布和订阅

android - 从 WebView 获取 Bitmap 产生 OutOfMemory 崩溃

android - 使用 OpenCV 在 Android 中将 4 channel 矩阵转换为 1 channel

java - 如何更改 TouchEvent 上的位图资源

android - 尽管在 surfaceDestroyed() 中停止线程,但 SurfaceView 线程中的 null Canvas - 仅在 Android 4/ICS 上