自定义圆头像
来源:互联网 发布:路易斯威廉姆斯数据 编辑:程序博客网 时间:2024/04/26 16:00
首先新创建一个类,继承ImageView或者View,这时我们需要添加构造器,有三种,其中三个参数的我们一般用不到,然后就是根据情况选择两个参数或者一个参数的
接着我们就要根据需要重写方法了,这里我只重写了一个方法
重写这个方法时,我们需要暗度陈仓把原来给ImageView返回的bm,换成我们自己的,具体代码如下
public void setImageBitmap(Bitmap bm) {
//画布
Bitmap bitmap=Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888);
Canvas canvas=new Canvas(bitmap);
//画笔,抗锯齿,颜色
Paint paint =new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.BLACK);
//画圆,半径取长款的最小值
float radius=Math.min(bm.getWidth(), bm.getHeight())/2;
canvas.drawCircle(bm.getWidth()/2, bm.getHeight()/2, radius, paint);
//覆盖效果波特达夫
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
setScaleType(ScaleType.CENTER);
super.setImageBitmap(bitmap);
}
接着我们需要去XML文件中声明一下,代码如下
<com.example.myview.CircleView
android:id="@+id/civ_main"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
myapp:border_width="2dp"
myapp:border_color="#ffff0000"
android:src="@drawable/ic_launcher"/>
最后就可以在MainActivity中写如下代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cv=(CircleView) findViewById(R.id.civ_main);
Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.b);
cv.setImageBitmap(bitmap);
}
这样我们就可以把方形图变为圆形图了,注意,在XML文件中自定义view的宽高应该根据模拟器的不同进行修改,可以在重写setImageBitmap时,加上 setScaleType(ScaleType.CENTER);这句代码,
好了,这就是简单的自定义圆头像,如果想要给头像加个圆边的话,请关注下篇文章
- 自定义圆头像
- 自定义实现圆头像
- 自定义圆头像
- 自定义头像圆角控件
- 自定义头像
- 自定义imageview使头像变圆
- 自定义App头像背景圆框
- 给自定义圆头像加一个边
- Android 自定义圆角图片/头像
- Android自定义圆形头像
- android自定义圆形头像
- Android 自定义圆形头像
- Android自定义圆形头像
- 自定义圆形头像
- 自定义圆形头像
- 仿微信群头像,自定义控件
- 自定义圆形头像
- 自定义圆形头像CircleImageView
- Jquery-zTree的基本用法
- zTree简单使用和代码结构
- 简单万年历
- 欢迎使用CSDN-markdown编辑器
- 续“SunshineCRM系统”二次开发总结
- 自定义圆头像
- 自我勉励
- mysqldump用法
- Shell简介:什么是Shell,Shell命令的两种执行方式
- IOS Dev Intro - Mac Commands
- android richEditText 可添加文本和图片的记事本功能的控件打造
- 几种常见的Shell
- Shell脚本语言与编译型语言的差异
- 环境变量