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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |