Android,如何使渐变平滑?

Android,如何使渐变平滑?,android,Android,我试图制作一个按钮背景,但它似乎有点参差不齐 public Bitmap makeButtonBit (int w,int h) { Bitmap bitmapBtn = Bitmap.createBitmap(w, h+2, Bitmap.Config.ARGB_8888); Canvas cnvBtn = new Canvas(bitmapBtn); Paint pR1 = new Paint(); pR1.setAntiAlias(true);

我试图制作一个按钮背景,但它似乎有点参差不齐

public Bitmap makeButtonBit (int w,int h)
{

    Bitmap bitmapBtn = Bitmap.createBitmap(w, h+2, Bitmap.Config.ARGB_8888);
    Canvas cnvBtn = new Canvas(bitmapBtn);

    Paint pR1 = new Paint();
    pR1.setAntiAlias(true);
    pR1.setAlpha(40);
    ///

    RectF rectShd1 = new RectF(0, 0, w, h+1);
    cnvBtn.drawRoundRect(rectShd1, 8, 8, pR1);

    RectF rectShd2 = new RectF(0, 0, w, h+2);
    cnvBtn.drawRoundRect(rectShd2, 8, 8, pR1);
    ///
    pR1.setAlpha(255);
    pR1.setShader(new LinearGradient(0, 0, 0, h, 0x11000000, 0xCC000000, TileMode.CLAMP));
    RectF rect1 = new RectF(0, 0, w, h);
    cnvBtn.drawRoundRect(rect1, 6, 6, pR1);

    pR1.setShader(new LinearGradient(0, 0, 0, h, 0xFF858990, 0xFF2E3337, TileMode.CLAMP));
    RectF rect2 = new RectF(1, 1, w-1, h-1);
    cnvBtn.drawRoundRect(rect2, 6, 6, pR1);

    pR1.setShader(new LinearGradient(0, 0, 0, h, 0xFF525A63, 0xFF2D343A, TileMode.CLAMP));
    RectF rect3 = new RectF(2, 2, w-2, h-2);
    cnvBtn.drawRoundRect(rect3, 6, 6, pR1);

    return bitmapBtn;
}

知道我做错了什么吗


谢谢。

为什么不使用九块补丁呢?

嗯,因为我一开始对它并不感兴趣。:)另一方面,绘制矩形将便于将来更改颜色、角半径等。