加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在android中制作图像循环[复制]

发布时间:2020-12-15 04:18:07 所属栏目:Java 来源:网络整理
导读:参见英文答案 How to make an ImageView with rounded corners?????????????????????????????????????41个 我找到了很多圆角的样本代码.我需要的是圆形图像.我发现这个没问题,但输出不是完美的圆形. ImageView im = (ImageView) findViewById(R.id.imag);Bit
参见英文答案 > How to make an ImageView with rounded corners?????????????????????????????????????41个
我找到了很多圆角的样本代码.我需要的是圆形图像.我发现这个没问题,但输出不是完美的圆形.

ImageView im = (ImageView) findViewById(R.id.imag);
Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.white);
Bitmap circleBitmap = Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(),Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader(bmp,TileMode.CLAMP,TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(shader);
Canvas c = new Canvas(circleBitmap);
c.drawCircle(bmp.getWidth() / 2,bmp.getHeight() / 2,bmp.getWidth() / 2,paint);
im.setImageBitmap(circleBitmap);

解决方法

试试这个…

public static Bitmap getCircularBitmapFrom(Bitmap bitmap) {
    if (bitmap == null || bitmap.isRecycled()) {
        return null;
    }
    float radius = bitmap.getWidth() > bitmap.getHeight() ? ((float) bitmap
            .getHeight()) / 2f : ((float) bitmap.getWidth()) / 2f;
    Bitmap canvasBitmap = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),Bitmap.Config.ARGB_8888);
    BitmapShader shader = new BitmapShader(bitmap,TileMode.CLAMP);
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setShader(shader);

    Canvas canvas = new Canvas(canvasBitmap);

    canvas.drawCircle(bitmap.getWidth() / 2,bitmap.getHeight() / 2,radius,paint);

    return canvasBitmap;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读