Rysowanie zewnętrznego cienia podczas rysowania obrazu

Obecnie tworzę zaokrągloną wersję obrazu w mojej aplikacji, rysując na płótnie. Chciałbym narysować słabą zewnętrzną cienię wokół obrazu, ale nie mogę tego zrobić dobrze. Mam 2 pytania: 1. W jaki sposób mogę narysować zewnętrzny cień (mogę tylko rysować cień za pomocą topora lub przesunięcia y) 2. Jak mogę narysować cień, aby nie miał artefaktów pokazanych na załączonym obrazie . Kod:

![public Bitmap getRoundedCornerBitmap(Bitmap bitmap, float cornerRadius) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth()+6, bitmap.getHeight() +6, Config.ARGB_8888);
        Canvas canvas = new Canvas(output);

        final int color = 0xff424242;
        int shadowRadius = getDipsFromPixel(3);
        final Rect imageRect = new Rect(shadowRadius, shadowRadius, bitmap.getWidth(), bitmap.getHeight());
        final RectF rectF = new RectF(imageRect);

        // This does not achieve the desired effect
        Paint shadowPaint = new Paint();
        shadowPaint.setAntiAlias(true);
        shadowPaint.setColor(Color.BLACK);
        shadowPaint.setShadowLayer((float)shadowRadius, 2.0f, 2.0f,Color.BLACK);
        canvas.drawOval(rectF, shadowPaint);

        canvas.drawARGB(0, 0, 0, 0);
        final Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(color);

        canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint);

        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        canvas.drawBitmap(bitmap, imageRect, imageRect, paint);

        return output;
    }][1]

To jest przykład efektu, który próbuję osiągnąć:

questionAnswers(4)

yourAnswerToTheQuestion