在Android上使用canvas描边圆imageview

AND4011002849

我正在尝试在我的圆形图像周围使用笔触,但是该笔触不适合该圆,看起来像在该圆圈周围有一个正方形,并且该笔触正在通过该限制,请参见下图。

public static Bitmap getCircleBitmap(Bitmap bitmap) {
       int size = Math.min(bitmap.getWidth(), bitmap.getHeight());

    Bitmap output = Bitmap.createBitmap(size,
            size, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(output);

    BitmapShader shader;
    shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP,
            Shader.TileMode.CLAMP);

    Paint paint = new Paint();
    Paint paintB = new Paint();
    paintB.setShader(shader);
    paintB.setStyle(Paint.Style.FILL);
    paint.setAntiAlias(true);
    paint.setColor(Color.YELLOW);
    paint.setStrokeWidth(15);
    paint.setStyle(Paint.Style.STROKE);


    RectF rect = new RectF(0, 0 ,size,size);
    int radius = size/2;
    canvas.drawRoundRect(rect, radius, radius, paint);
    canvas.drawRoundRect(rect, radius, radius, paintB);
    return output;
    }

xml:

  <com.click.CircledNetworkImageView
     android:id="@+id/profilePic"
     android:layout_width="@dimen/feed_item_profile_pic"
     android:layout_height="@dimen/feed_item_profile_pic"
     android:scaleType="centerCrop"
     android:layout_alignParentTop="false"
     android:layout_alignParentLeft="false"
     android:layout_alignParentBottom="false"
     android:layout_alignParentRight="false"
     android:layout_alignWithParentIfMissing="false"
     android:layout_alignParentEnd="false"
     android:layout_alignParentStart="false"
     android:layout_centerInParent="true">
 </com.click.CircledNetworkImageView>

在此处输入图片说明

克里斯·拉尔森

我看似BitmapShader一种神奇的画笔,我所画的所有东西都会刮掉画布以显示下面的位图。当我想到我犯更少的错误时BitmapShader

因此,从查看代码的角度来看,我猜测您希望图像位于圆角矩形内,外部带有白色笔触。

由于您将绘画风格设置为STROKE,因此画笔会抚摸形状,因此它将位图显示在描边的位置。

您将要调用canvas.drawRoundRect()两次,具有相同的rect / radius值,但使用两种不同的绘画。第一次绘制时将设置位图着色器和一种FILL样式。第二次,油漆将具有颜色=白色,笔划宽度= 15和STROKE样式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Java for Android在Canvas上绘制圆

来自分类Dev

Android ImageView边距

来自分类Dev

使用 MVVM 在 WPF Canvas 上绘制动态圆

来自分类Dev

Android中的圆边进度栏

来自分类Dev

使用CSS创建描边帧效果

来自分类Dev

在圆上使用的HTML5 Canvas ctx.clip()方法在圆下方留下一条线

来自分类Dev

用绘画/描边/绘画在画布上显示图像

来自分类Dev

在Xcode上添加描边和填充以为分数标签

来自分类Dev

在Android中测量“ fitCenter” imageView的边距

来自分类Dev

使用 NativeScript 在 Android 上移除按钮的边距

来自分类Dev

Android中ImageView上的ImageView

来自分类Dev

圆边桌

来自分类Dev

UIBezierPath圆边?

来自分类Dev

使用选择器检索填充和描边颜色?

来自分类Dev

用文字描边

来自分类Dev

覆盖Android上的ImageView

来自分类Dev

在Android上移动ImageView

来自分类Dev

LinearLayout 上的 Android Imageview

来自分类Dev

Android-ImageView仅圆了一个角

来自分类Dev

HTML Canvas - 描边路径上的发光轮廓?

来自分类Dev

在Android画布上绘制空心圆

来自分类Dev

Android无法使用SurfaceView在ImageView上设置图像

来自分类Dev

Android无法使用SurfaceView在ImageView上设置图像

来自分类Dev

Android将ImageView放在Canvas顶部

来自分类Dev

如何使用JavaScript在HTML5 Canvas中绘制圆?

来自分类Dev

什么是PDF描边,不描边和填充?

来自分类Dev

SharpDX 描边样式1

来自分类Dev

是否可以在JavaFX中将ImageView放在Canvas上?

来自分类Dev

如何在Android中的图像上绘制圆