废话不多说了,直接给大家贴代码了,具体代码如下所示:
public class RoundImageView extends ImageView { private Paint paint; private int roundWidth = 50; private int roundHeight = 50; private Paint paint2; public RoundImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context, attrs); } public RoundImageView(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs); } public void SetRoundValue(float roundValue) { roundWidth = (int) roundValue; roundHeight = (int) roundValue; } public RoundImageView(Context context) { super(context); init(context, null); } @SuppressLint("Recycle") private void init(Context context, AttributeSet attrs) { if (attrs != null) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RoundAngleImageView); roundWidth = a.getDimensionPixelSize(R.styleable.RoundAngleImageView_roundWidth, roundWidth); roundHeight = a.getDimensionPixelSize(R.styleable.RoundAngleImageView_roundHeight, roundHeight); } else { float density = context.getResources().getDisplayMetrics().density; roundWidth = (int) (roundWidth * density); roundHeight = (int) (roundHeight * density); } paint = new Paint(); paint.setColor(Color.WHITE); paint.setAntiAlias(true); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); paint2 = new Paint(); paint2.setXfermode(null); } @Override public void draw(Canvas canvas) { Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888); Canvas canvas2 = new Canvas(bitmap); super.draw(canvas2); drawLiftUp(canvas2); drawRightUp(canvas2); drawLiftDown(canvas2); drawRightDown(canvas2); canvas.drawBitmap(bitmap, 0, 0, paint2); bitmap.recycle(); bitmap = null; } private void drawLiftUp(Canvas canvas) { Path path = new Path(); path.moveTo(0, roundHeight); path.lineTo(0, 0); path.lineTo(roundWidth, 0); path.arcTo(new RectF(0, 0, roundWidth * 2, roundHeight * 2), -90, -90); path.close(); canvas.drawPath(path, paint); } private void drawLiftDown(Canvas canvas) { Path path = new Path(); path.moveTo(0, getHeight() - roundHeight); path.lineTo(0, getHeight()); path.lineTo(roundWidth, getHeight()); path.arcTo(new RectF(0, getHeight() - roundHeight * 2, 0 + roundWidth * 2, getWidth()), 90, 90); path.close(); canvas.drawPath(path, paint); } private void drawRightDown(Canvas canvas) { Path path = new Path(); path.moveTo(getWidth() - roundWidth, getHeight()); path.lineTo(getWidth(), getHeight()); path.lineTo(getWidth(), getHeight() - roundHeight); path.arcTo(new RectF(getWidth() - roundWidth * 2, getHeight() - roundHeight * 2, getWidth(), getHeight()), 0, 90); path.close(); canvas.drawPath(path, paint); } private void drawRightUp(Canvas canvas) { Path path = new Path(); path.moveTo(getWidth(), roundHeight); path.lineTo(getWidth(), 0); path.lineTo(getWidth() - roundWidth, 0); path.arcTo(new RectF(getWidth() - roundWidth * 2, 0, getWidth(), 0 + roundHeight * 2), -90, 90); path.close(); canvas.drawPath(path, paint); } }
好了,有关Android 圆角 ImageView类可设置弧度的内容小编就给大家介绍到这里,希望对大家有所帮助!
本文向大家介绍Android使用ImageView 制作透明圆弧实例代码,包括了Android使用ImageView 制作透明圆弧实例代码的使用技巧和注意事项,需要的朋友参考一下 这几天因为项目需求,需要在ImageView上面叠加一层透明圆弧,并且在沿着圆弧的方向显示相应的文字,效果如下图所示: 拿到这个需求,首先想到的是自定义一个ImageView来实现此功能,即在onDraw()中绘制圆
问题内容: 我希望图像具有圆角。我实现此xml代码,并在我的图像视图中使用它。但图像与形状重叠。我正在通过异步任务下载图像。 问题答案: 我使用通用图像加载器库下载图像并绕过图像的角落,它对我有用。
本文向大家介绍Android自定义圆角ImageView,包括了Android自定义圆角ImageView的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了。 java类如下: 定义一个attr.xml的文件,放在values目录下面,内容如下: 使用示例如下: 先要声明属性的名字空间: 然后再写跟一般定义View一样: 效果如图: 以上代码简单介绍了Android自定义圆
本文向大家介绍android实现简单圆弧效果,包括了android实现简单圆弧效果的使用技巧和注意事项,需要的朋友参考一下 最近项目完成就开始搞一些有用没用的东西,以前面试的时候有人问我那种圆弧效果怎么做,还问我翻牌效果,我只看过,没有做过,现在有空了,而且想到可能会用到就做个简单的 圆弧很简单,自定义个View,创建个Paint,设置 arcPaint.setStyle(Paint.Style.
本文向大家介绍Android中通过反射实现圆角ImageView代码实例,包括了Android中通过反射实现圆角ImageView代码实例的使用技巧和注意事项,需要的朋友参考一下 继承ImageView,在构造方法中调用,初始化Paint和Xfermode。 重写ImageView的onDraw方法,通过xfermode实现圆角 通过反射的方法将xfermode设置到BitmapDrawable
本文向大家介绍Android自定义控件之圆形、圆角ImageView,包括了Android自定义控件之圆形、圆角ImageView的使用技巧和注意事项,需要的朋友参考一下 一、问题在哪里? 问题来源于app开发中一个很常见的场景——用户头像要展示成圆的: 二、怎么搞? 机智的我,第一想法就是,切一张中间圆形透明、四周与底色相同、尺寸与头像相同的蒙板图片,盖在头像上不就完事了嘛,哈哈哈! 在背景纯