在Android中如何使用clipPath()方法实现简单的裁剪圆形图片
裁剪圆形图片的方式有很多,这篇文章主要为大家介绍如何使用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()方法实现简单的裁剪圆形图片相关推荐
- Android中实现震动的方法
https://blog.csdn.net/bruceyangjie/article/details/53283899 Android中实现震动的方法 版权声明:本文为博主原创文章,未经博主允许不得转 ...
- Android中JNI的使用方法
Android中JNI的使用方法 首先看一下Android平台的框架图: 可以看到Android上层的Application和ApplicationFramework都是使用Java编写, 底层包括系 ...
- android 生成aar文件,Android 中.aar文件生成方法与用法
https://i.cnblogs.com/EditPosts.aspx?opt=1 无论是用Eclipse还是用Android Studio做android开发,都会接触到jar包,全称应该是:Ja ...
- Android中的AsyncTask异步任务的简单实例
在 Android中的AsyncTask异步任务的简单介绍 一文中,已经对 安卓 异步任务操作做了简单的介绍,这里,直接将上文中的异步任务做了一个实例,实现异步操作更新UI线程,相比开启子线程更新来 ...
- Android中的AsyncTask异步任务的简单介绍
事件原由: 很多耗时的资源在安卓客户端加载时,必须要开启一个新的线程去操作维护,而如果直接在主线程中加载的话,客户端会直接报出异常,导致程序不能正常使用,而子线程无法直接更新UI,因此客户端提供了 ...
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片 Android6.0中把Apache HTTP Client所有的包与类都标记为deprecated ...
- HTTP请求方式中8种请求方法(简单介绍)
HTTP请求方式中8种请求方法(简单介绍) 简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动 ...
- Android中Handler的使用方法——在子线程中更新界面
本文主要介绍Android的Handler的使用方法.Handler可以发送Messsage和Runnable对象到与其相关联的线程的消息队列.每个Handler对象与创建它的线程相关联,并且每个Ha ...
- Android 中插件的编写方法
java中插件主要使用反射机制来完成,Android与Java中一样也是通过反射机制,不同的是Android中使用的是DexClassLoader和PathClassLoader. 原因很简单,And ...
最新文章
- Java Pinyin4j(汉字转拼音)
- java面向对象(类与对象,局部变量成员变量,基本类型和引用类型作为参数传递)...
- opencv 摄像头
- python字符串可以保存在变量中吗_在python中可以从字符串变量实例化类吗?
- 大数据时代,如何用数据驱动精准营销
- 如何将数据转换为时间序列数据
- 2021电赛F题智能送药小车程序代码
- 通过Jsoup 和 htmlunit 爬取全国行政区划信息查询平台的省市区区划数据
- Spring Security Oauth2 JWT
- 蓝牙耳机选哪种的比较好、高端蓝牙耳机推荐
- 关于第三方App发起Unity开发的app的解决方案
- tensor 张量保存为txt文件
- Java后端与Vue前端导出Excel表格文件并解决乱码和文件打不开
- android发送微信请求失败,安卓微信浏览器POST请求发不出去。
- 关于割接9000W数据的一些事
- ABA问题的解决方法
- 双边滤波产生水彩画风格
- IT历史:互联网简史
- mysql 一行数据拆分成多行
- 简约时尚写真照片模特展示PR模板MOGRT
热门文章
- 解决“warning C280 ‘xxx‘ unreferenced local variable”告警方法
- 手持终端的功能特点有哪些?
- 计算机教师研修计划书,信息技术个人研修计划|化学教学信息技术研修计划书...
- 老王,你的wifi密码怎么改了啊
- 河南省18个地级市行政区划 (2023)
- js中indexOf()的使用
- python叠加条形图的绘制
- 初识游戏客户端与服务器
- 八、IMU器件温度漂移补偿
- 西门子PLC300编程实例程序70例 含RFID读写器专用功能块 西门子PLC300编程应用实例程序