CircleImageView

android 通过修改图片像素实现CircleImageView

我是研究僧i 提交于 2020-03-02 15:26:44
CircleImageView实现方法有很多种,各有优缺点,因此需要按照不同的场景使用。我们今天使用修改图片像素的方法实现CircleImageView,主要知识点无非是勾股定理和点到圆形的距离。 素材图片: 效果如下: 1、clipPath裁剪画布 该方法支持的最小版本是Android 4.3(API Level 18),方便快捷,但是不支持硬件加,此外也存在Path既有的缺点,不支持抗锯齿。 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic); mPath = new Path(); mPath.addCircle(mBitmap.getWidth() / 2, mBitmap.getHeight() / 2, mBitmap.getWidth() / 2, Path.Direction.CCW); canvas.clipPath(mPath); canvas.drawBitmap(mBitmap, 0, 0, paint); } 2、使用PorterDuffXfermode

Android 一个另类的显示圆形图片方式

夙愿已清 提交于 2019-12-01 07:18:51
刚在看自定义 View 的知识点时,突然想起来,如果 CardView 宽高相等, CardView 设置圆角的半径为宽高的一半时,不就是一个圆形嘛?! Cardview配合ImageView显示圆形图 1.布局文件 <android.support.v7.widget.CardView android:id="@+id/cv_img_activity" android:layout_width="200dp" android:layout_height="200dp" app:cardCornerRadius="100dp" app:cardElevation="10dp" app:cardPreventCornerOverlap="true"> <ImageView android:id="@+id/iv_cv_img_activity" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color

Android自定义ImageView实现圆形图片

 ̄綄美尐妖づ 提交于 2019-11-30 02:09:42
自定义ImageView实现圆形图片,主要是在onDraw()方法中实现绘制圆形图片,在onMeasure()中测量圆形的半径并设置View的宽高。效果如下图 代码如下 public class CircleImageView extends ImageView { //画笔 private Paint mPaint; //圆形图片的半径 private int mRadius; //图片的宿放比例 private float mScale; public CircleImageView(Context context) { super(context); } public CircleImageView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public CircleImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super