Рисование внешней тени при рисовании изображения

В настоящее время я создаю округленную версию изображения в своем приложении, рисуя на холсте. Я хотел бы нарисовать слабую тень вокруг изображения, но я не могу понять это правильно. У меня есть 2 вопроса: 1. Как я могу нарисовать внешнюю тень (мне кажется, что я могу нарисовать только тень со смещением топора или y) 2. Как я могу нарисовать тень, чтобы на ней не было артефактов, показанных на прикрепленном изображении , Код:

![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]

Это пример эффекта, которого я пытаюсь достичь:

Ответы на вопрос(4)

Ваш ответ на вопрос