【问题标题】:How to provide stroke and rounded inner corners in Android如何在Android中提供描边和圆角内角
【发布时间】:2014-07-26 08:43:21
【问题描述】:

我有custom ImageView,它将有笔触和圆角内角。

我已经成功地做到了这一点。但我也想对这张图片进行缩放和翻译。因此,如果我执行缩放,则看不到圆角。

下面是我使用的代码:

Bitmap output = Bitmap.createBitmap(bg_image_bitmap.getWidth(),bg_image_bitmap.getHeight(),bg_image_bitmap.getConfig());

Canvas canvas = new Canvas(output);

final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bg_image_bitmap
        .getWidth(), bg_image_bitmap.getHeight());

final RectF rectF = new RectF(rect);

paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(getResources().getColor(
        R.color.theme_red));
canvas.drawRoundRect(rectF, roundCornerRadius,
        roundCornerRadius, paint);

paint.setXfermode(new PorterDuffXfermode(
        Mode.SRC_IN));
canvas.drawBitmap(bg_image_bitmap, rect, rect,
        paint);

paint.setXfermode(null);

view_BG.setImageBitmap(output);

我知道我已经为画布指定了图像高度和宽度,所以会出现问题。但我没有其他选择继续。

请帮我解决这个问题。
谢谢。

【问题讨论】:

    标签: android bitmap rounded-corners


    【解决方案1】:

    我认为在缩放时,您必须重新计算图像的宽度和高度,然后再次调用上面的代码。

    【讨论】:

    • 我只使用该图像的高度、宽度。并将该数据提供给输出位图。它给出了整个图像的高度和宽度(也包括图像的不可见区域)。由于这个原因,第二张图片是这样的。
    • 这应该是评论而不是答案!
    猜你喜欢
    • 2012-03-22
    • 2010-09-24
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    相关资源
    最近更新 更多