Android圆形图像周围的圆形边框

用户名

我这样做是为了获得一个圆形ImageView,如何在它周围添加圆形边框,如下图所示:

预期结果的屏幕截图

public static Bitmap getRoundedShape(Bitmap scaleBitmapImage,int width) {
    int targetWidth = width;
    int targetHeight = width;
    Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, 
            targetHeight,Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(targetBitmap);
    Path path = new Path();
    path.addCircle(((float) targetWidth - 1) / 2,
            ((float) targetHeight - 1) / 2,
            (Math.min(((float) targetWidth), 
            ((float) targetHeight)) / 2),
            Path.Direction.CCW);
    canvas.clipPath(path);
    Bitmap sourceBitmap = scaleBitmapImage;
    canvas.drawBitmap(sourceBitmap, 
            new Rect(0, 0, sourceBitmap.getWidth(),
            sourceBitmap.getHeight()), 
            new Rect(0, 0, targetWidth, targetHeight), null);
    return targetBitmap;
}
加布里埃尔·马里奥蒂(Gabriele Mariotti)

关于此功能,有一个非常有趣的帖子:http : //www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/由Romain Guy(ex Google的android小组)。

您可以使用类似以下内容的示例:本示例创建带有白色描边的圆形位图。您可以更改它,添加带有黑色线条的白色笔划。

public class CircleDrawable extends Drawable {

    private final BitmapShader mBitmapShader;
    private final Paint mPaint;
    private Paint mWhitePaint;
    int circleCenterX;
    int circleCenterY;
    int mRadus;
    private boolean mUseStroke = false;
    private int mStrokePadding = 0;

    public CircleDrawable(Bitmap bitmap) {

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

        mPaint = new Paint();
        mPaint.setAntiAlias(true);
        mPaint.setShader(mBitmapShader);

    }

    public CircleDrawable(Bitmap bitmap, boolean mUseStroke) {
        this(bitmap);

        if (mUseStroke) {
            this.mUseStroke = true;
            mStrokePadding = 4;
            mWhitePaint = new Paint();
            mWhitePaint.setStyle(Paint.Style.FILL_AND_STROKE);
            mWhitePaint.setStrokeWidth(0.75f);
            mWhitePaint.setColor(Color.WHITE);
        }
    }

    @Override
    protected void onBoundsChange(Rect bounds) {
        super.onBoundsChange(bounds);
        circleCenterX = bounds.width() / 2;
        circleCenterY = bounds.height() / 2;

        if (bounds.width() >= bounds.height())
            mRadus = bounds.width() / 2;
        else
            mRadus = bounds.height() / 2;
    }

    @Override
    public void draw(Canvas canvas) {
        if (mUseStroke) {
            canvas.drawCircle(circleCenterX, circleCenterY, mRadus, mWhitePaint);
        }
        canvas.drawCircle(circleCenterX, circleCenterY, mRadus - mStrokePadding, mPaint);
    }

    @Override
    public int getOpacity() {
        return PixelFormat.TRANSLUCENT;
    }

    @Override
    public void setAlpha(int alpha) {
        mPaint.setAlpha(alpha);
    }

    @Override
    public void setColorFilter(ColorFilter cf) {
        mPaint.setColorFilter(cf);
    }

    public boolean ismUseStroke() {
        return mUseStroke;
    }

    public void setmUseStroke(boolean mUseStroke) {
        this.mUseStroke = mUseStroke;
    }

}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用引导程序在div周围创建圆形边框?

来自分类Dev

如何在圆形边框内放入方形HTML图像?

来自分类Dev

缩放矩形图像上的CSS圆形边框

来自分类Dev

圆形图像按钮android

来自分类Dev

如何在Android的圆形ImageView周围绘制边框?

来自分类Dev

在文字周围制作圆形边框

来自分类Dev

如何创建带边框的圆形图像(UIGraphics)?

来自分类Dev

如何在社交图标周围制作圆形边框?

来自分类Dev

圆形CALayer周围的边框较暗

来自分类Dev

如何通过编程方式使圆形图像边框到imageview android

来自分类Dev

元素周围的局部圆形边框

来自分类Dev

如何在滑行中为圆形裁剪图像制作边框

来自分类Dev

图像上的圆形边框不均匀

来自分类Dev

UITableCell圆形边框

来自分类Dev

Android EditText的圆形边框

来自分类Dev

创建没有固定宽度和高度的圆形图像边框

来自分类Dev

Flutter:-在图标周围创建圆形边框

来自分类Dev

react-native在图像周围创建动画的圆形处理栏

来自分类Dev

修改圆形CSS的边框

来自分类Dev

如何在Android中为圆形图像获取白色边框?

来自分类Dev

圆形边框在圆形图像周围的各个部分中分开

来自分类Dev

如何在图像中的对象周围绘制椭圆形

来自分类Dev

如何通过编程方式使圆形图像边框到imageview android

来自分类Dev

元素周围的局部圆形边框

来自分类Dev

如何在圆形图像外插入边框?

来自分类Dev

Android EditText的圆形边框

来自分类Dev

如何使图像按钮圆形并在圆圈内,将显示图像并在图像周围有边框

来自分类Dev

制作圆形边框,在文本后面 - 不在周围

来自分类Dev

可以在圆形图标字体周围绘制css边框吗?

Related 相关文章

热门标签

归档