用渐变色调和圆角绘制图像

时间:2018-02-08 19:13:14

标签: android android-layout android-canvas android-drawable android-bitmap

我试图在视图上设置背景,这应该是一个带有圆角和渐变色调的图像

我觉得我很近,我只是错过了圆角。我在这里制作了一个最小的工作示例项目:https://github.com/RandomStuffAndCode/AndroidCanvas

来自https://github.com/RandomStuffAndCode/AndroidCanvas/blob/master/app/src/main/java/com/randomcodeandstuff/androidcanvas/MainActivity.java

    RoundedBitmapDrawable dr = RoundedBitmapDrawableFactory.create(getResources(), src);
    dr.setCornerRadius(convertToPixels(context, CORNER_RADIUS));
    Bitmap drBitmap = drawableToBitmap(dr);
    Paint drPaint = new Paint();
    drPaint.setAntiAlias(true);
    drPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    canvas.drawBitmap(drBitmap, 0,0,drPaint);

这显然给了我4个圆角而不只是1.我考虑在其他圆角上绘制一个矩形,但由于渐变叠加,这看起来不太好。

如何摆脱其他3个圆角?此处代码的屏幕截图:Screenshot

1 个答案:

答案 0 :(得分:1)

如果您的目标是API级别21+,可能的选择是使用普通的ImageView,但在其上设置ViewOutlineProvider。您提供的大纲可能必须是convexPath选项,因此您必须针对特定用例修改它。