android中对图片进行切圆,画白边
2016-05-09 09:06
881 查看
private static Bitmap getCircleAvatar(Context context, Bitmap avatar) {
// TODO Auto-generated method stub
Bitmap bitmap=Bitmap.createBitmap(avatar.getWidth(), avatar.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas=new Canvas(bitmap);
Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);
//混合模式中的圆 DST
paint.setColor(Color.BLACK);
//半径取宽高中小的并/2
canvas.drawCircle(avatar.getWidth()/2, avatar.getHeight()/2,
avatar.getWidth()/2<avatar.getHeight()/2?avatar.getWidth()/2:avatar.getHeight()/2,
paint);
//添加混合模式给paint,矩阵,切圆,方形和圆形,选择圆形重叠的部分
//PorterDuffXfermode:该方法及是
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
//再把原始头像,画到bitmap上
canvas.drawBitmap(avatar, 0, 0, paint);
/**画个百边*/
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);//设置一个模式
//进行单位变换
float strokeWidth =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2,
context.getResources().getDisplayMetrics());
paint.setStrokeWidth(strokeWidth);
canvas.drawCircle(avatar.getWidth()/2, avatar.getHeight()/2,
avatar.getWidth()/2<avatar.getHeight()/2?avatar.getWidth()/2:avatar.getHeight()/2
-strokeWidth/2, paint);
return bitmap;
}
// TODO Auto-generated method stub
Bitmap bitmap=Bitmap.createBitmap(avatar.getWidth(), avatar.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas=new Canvas(bitmap);
Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);
//混合模式中的圆 DST
paint.setColor(Color.BLACK);
//半径取宽高中小的并/2
canvas.drawCircle(avatar.getWidth()/2, avatar.getHeight()/2,
avatar.getWidth()/2<avatar.getHeight()/2?avatar.getWidth()/2:avatar.getHeight()/2,
paint);
//添加混合模式给paint,矩阵,切圆,方形和圆形,选择圆形重叠的部分
//PorterDuffXfermode:该方法及是
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
//再把原始头像,画到bitmap上
canvas.drawBitmap(avatar, 0, 0, paint);
/**画个百边*/
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);//设置一个模式
//进行单位变换
float strokeWidth =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2,
context.getResources().getDisplayMetrics());
paint.setStrokeWidth(strokeWidth);
canvas.drawCircle(avatar.getWidth()/2, avatar.getHeight()/2,
avatar.getWidth()/2<avatar.getHeight()/2?avatar.getWidth()/2:avatar.getHeight()/2
-strokeWidth/2, paint);
return bitmap;
}
相关文章推荐
- android studio 首字母提示 设置 大小写敏感
- Android中免Root实现Hook的Dexposed框架实现原理解析以及如何实现应用的热修复
- Android系列之广播
- geekband android #5 第十周分享(传感器)
- Android布局的各种对齐问题
- Android layout学习笔记
- Android开发中利用imeOptions属性将键盘回车键改成搜索等功能键【提高用户输入体验】
- Android Studio 2.1 稳定版开始支持 java8
- Android笔记之Content Provider(内容提供器)
- Android笔记之存储(SQLite数据库)
- Android笔记之数据存储(SharedPreferences)
- Android apk 反编译技术
- 作业——在线学习Android课程之第十周(传感器与LBS)
- Bitmap API
- Android 混淆Tips
- android tv关于第一次设置默认焦点失效的解决方案
- Android之ViewPager自动循环播放(轮播)效果实现(超简单)
- Android图片资源处理
- Adnroid多媒体---音视频
- 活动的生命周期