裁剪圆形图片的方式有很多,这篇文章主要为大家介绍如何使用clipPath()方法裁剪圆形图片。
首先,我们先看效果图:
裁剪前:

裁剪后:

接下来,我们来一步一步的实现。

1.新建一个module

2.新建一个自定义view类,继承View,并重写两参构造器和onDrawn方法

/*** Created by zhaoxin on 17/8/31.*/public class MyAnimationView extends View {public MyAnimationView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);}

3.新建一个布局,在布局中通过包名.类导入自定义view

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><com.example.zhaoxin.mycustomviewanimation.MyAnimationView
        android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>

4.接下来就是重要的裁剪圆形图片部分

/*** Created by zhaoxin on 17/8/31.*/public class MyAnimationView extends View {private Bitmap mBitmap;private Path mPath;public MyAnimationView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}@Overrideprotected 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);}
}

至此,简单的圆形图片的裁剪已全部完成。

在Android中如何使用clipPath()方法实现简单的裁剪圆形图片相关推荐

  1. Android中实现震动的方法

    https://blog.csdn.net/bruceyangjie/article/details/53283899 Android中实现震动的方法 版权声明:本文为博主原创文章,未经博主允许不得转 ...

  2. Android中JNI的使用方法

    Android中JNI的使用方法 首先看一下Android平台的框架图: 可以看到Android上层的Application和ApplicationFramework都是使用Java编写, 底层包括系 ...

  3. android 生成aar文件,Android 中.aar文件生成方法与用法

    https://i.cnblogs.com/EditPosts.aspx?opt=1 无论是用Eclipse还是用Android Studio做android开发,都会接触到jar包,全称应该是:Ja ...

  4. Android中的AsyncTask异步任务的简单实例

    在  Android中的AsyncTask异步任务的简单介绍 一文中,已经对 安卓 异步任务操作做了简单的介绍,这里,直接将上文中的异步任务做了一个实例,实现异步操作更新UI线程,相比开启子线程更新来 ...

  5. Android中的AsyncTask异步任务的简单介绍

    事件原由: 很多耗时的资源在安卓客户端加载时,必须要开启一个新的线程去操作维护,而如果直接在主线程中加载的话,客户端会直接报出异常,导致程序不能正常使用,而子线程无法直接更新UI,因此客户端提供了   ...

  6. Android中使用HttpURLConnection实现GET POST JSON数据与下载图片

    Android中使用HttpURLConnection实现GET POST JSON数据与下载图片 Android6.0中把Apache HTTP Client所有的包与类都标记为deprecated ...

  7. HTTP请求方式中8种请求方法(简单介绍)

    HTTP请求方式中8种请求方法(简单介绍) 简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动 ...

  8. Android中Handler的使用方法——在子线程中更新界面

    本文主要介绍Android的Handler的使用方法.Handler可以发送Messsage和Runnable对象到与其相关联的线程的消息队列.每个Handler对象与创建它的线程相关联,并且每个Ha ...

  9. Android 中插件的编写方法

    java中插件主要使用反射机制来完成,Android与Java中一样也是通过反射机制,不同的是Android中使用的是DexClassLoader和PathClassLoader. 原因很简单,And ...

最新文章

  1. Java Pinyin4j(汉字转拼音)
  2. java面向对象(类与对象,局部变量成员变量,基本类型和引用类型作为参数传递)...
  3. opencv 摄像头
  4. python字符串可以保存在变量中吗_在python中可以从字符串变量实例化类吗?
  5. 大数据时代,如何用数据驱动精准营销
  6. 如何将数据转换为时间序列数据
  7. 2021电赛F题智能送药小车程序代码
  8. 通过Jsoup 和 htmlunit 爬取全国行政区划信息查询平台的省市区区划数据
  9. Spring Security Oauth2 JWT
  10. 蓝牙耳机选哪种的比较好、高端蓝牙耳机推荐
  11. 关于第三方App发起Unity开发的app的解决方案
  12. tensor 张量保存为txt文件
  13. Java后端与Vue前端导出Excel表格文件并解决乱码和文件打不开
  14. android发送微信请求失败,安卓微信浏览器POST请求发不出去。
  15. 关于割接9000W数据的一些事
  16. ABA问题的解决方法
  17. 双边滤波产生水彩画风格
  18. IT历史:互联网简史
  19. mysql 一行数据拆分成多行
  20. 简约时尚写真照片模特展示PR模板MOGRT

热门文章

  1. 解决“warning C280 ‘xxx‘ unreferenced local variable”告警方法
  2. 手持终端的功能特点有哪些?
  3. 计算机教师研修计划书,信息技术个人研修计划|化学教学信息技术研修计划书...
  4. 老王,你的wifi密码怎么改了啊
  5. 河南省18个地级市行政区划 (2023)
  6. js中indexOf()的使用
  7. python叠加条形图的绘制
  8. 初识游戏客户端与服务器
  9. 八、IMU器件温度漂移补偿
  10. 西门子PLC300编程实例程序70例 含RFID读写器专用功能块 西门子PLC300编程应用实例程序