Android 圆形图片加白边加阴影
/**
* 将图片准转为圆形
*
* @param bitmap
* @return
*/
public static Bitmap getRoundedCornerBitmap(String path, Bitmap bitmap) { int size = bitmap.getWidth() < bitmap.getHeight() ? bitmap.getWidth()
: bitmap.getHeight();
Bitmap output = Bitmap.createBitmap(size, size, Config.ARGB_8888);
Canvas canvas = new Canvas(output); final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, size, size);
final float roundPx = size / 2; paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle(roundPx, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint); ImageCruCache.getInstance().addBitmapToMemoryCache(path, output);
return getRoundeBitmapWithWhite(path, output);
} /**
* 获取白色边框
*
* @param path
* @param bitmap
* @return
*/
public static Bitmap getRoundeBitmapWithWhite(String path, Bitmap bitmap) {
int size = bitmap.getWidth() < bitmap.getHeight() ? bitmap.getWidth()
: bitmap.getHeight();
int num = 14;
int sizebig = size + num;
Bitmap output = Bitmap.createBitmap(sizebig, sizebig, Config.ARGB_8888);
Canvas canvas = new Canvas(output); final int color = Color.parseColor("#FFFFFF");
final Paint paint = new Paint();
final float roundPx = sizebig / 2; paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawBitmap(bitmap, num / 2, num / 2, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_ATOP)); RadialGradient gradient = new RadialGradient(roundPx, roundPx, roundPx,
new int[] { Color.WHITE, Color.WHITE,
Color.parseColor("#AAAAAAAA") }, new float[] { 0.f,
0.97f, 1.0f }, Shader.TileMode.CLAMP);
paint.setShader(gradient);
canvas.drawCircle(roundPx, roundPx, roundPx, paint); ImageCruCache.getInstance().addBitmapToMemoryCache(path, output);
return output;
}
分两步执行,第一步:getRoundedCornerBitmap方法执行将图片转换为正圆;
第二部:getRoundeBitmapWithWhite设置白色边框并且添加阴影
如果不喜欢阴影,可以考虑去掉paint的阴影效果
这里有一个非常重要的事情:createBitmap一定要使用 Config.ARGB_8888 不然就没有效果。具体原因有待研究。
Android 圆形图片加白边加阴影的更多相关文章
- Android圆形图片自定义控件
Android圆形图片控件效果图如下: 代码如下: RoundImageView.java package com.dxd.roundimageview; import android.content ...
- Android圆形图片--自己定义控件
Android圆形图片控件效果图例如以下: 代码例如以下: RoundImageView.java package com.dxd.roundimageview; import android.con ...
- iOS开发Quzrtz2D 十:圆形图片的绘制以及加边框圆形图片的绘制
一:圆形图片的绘制 @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageV; @en ...
- Android圆形图片--ImageView
[ RoundImageView.java ] package com.dxd.roundimageview; import android.content.Context; import andro ...
- Android圆形图片不求人,自定义View实现(BitmapShader使用)
在很多APP当中,圆形的图片是必不可少的元素,美观大方.本文将带领读者去实现一个圆形图片自定View,力求只用一个Java类来完成这件事情. 一.先上效果图 二.实现思路 在定义View 的onMea ...
- 关于Android圆形图片的一种优化方案(可以显示网络图片)
在Android App中,我们经常看到圆形头像图片,然后网上也有很多开源的控件.刚好这个项目用到了,也去找了一些开源的,发现并不完美,所以只好自己优化了,废话不多说,先上效果图: 下面是源码:本人能 ...
- Android 绘制圆形图片
经常在项目中,会遇到使用圆形头像. 然而图片往往不是圆形的,我们须要对图片进行处理.以达到圆形图片的效果.这里.我总结了一下经常使用的android圆形图片的绘制的方法. 主要有以下几种方式:1.画布 ...
- Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框
Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框 在Android早期的开发中,如果涉及到圆形图片的处理,往往需要借助于第三方的实现,见附录文章1,2.And ...
- Android自定义圆形图片工具类(CTRL+C加CTRL+V直接使用)
先贴一下工具类的代码!可直接复制粘贴 public class RoundImageView extends ImageView { private Paint mPaint; //画笔 privat ...
随机推荐
- 解决springmvc报No converter found for return value of type: class java.util.ArrayList问题
一.背景 最近闲来无事,想自己搭建一套Spring+SpringMVC+Mybatis+Mysql的环境(搭建步骤会在以后博客中给出),结果运行程序时,适用@ResponseBody注解进行返回Lis ...
- Js动态设置rem来实现移动端字体的自适应
//设置根元素字体 var win = window, doc = document; function setFontSize() { var winWidth = $(window).width( ...
- Oracle执行计划详解
Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介: ...
- Java基础学习(三)
/* java中的八种基本数据类型: 整数: byte . short . int . long 小数: float double 字符: char 布尔: boolean 字符串的类型: Strin ...
- 公众号第三方平台开发 获取 component_verify_ticket 2015-07-05 10:16 59人阅读 评论(0) 收藏
8.推送component_verify_ticket协议 在公众号第三方平台创建审核通过后,微信服务器会向其"授权事件接收URL"每隔10分钟定时推送component_veri ...
- ppmoney 总结二
1. return false ES6函数的扩展:箭头函数 数组 arr.map() arr.filter() <!DOCTYPE html> <html lang=&qu ...
- CozyRSS开发记录20-CanResizeWithGrip
CozyRSS开发记录20-CanResizeWithGrip 1.窗口样式 首先,WindowStyle有四种: 然后,对于窗口缩放的ResizeMode,也有四种,CanResize和CanRes ...
- NoSql数据库初探-mongoDB环境搭建
NoSQL数据库一改关系型数据库的缺点,更容易的集成.分布式.无模式.故障恢复等特点,正在一步步餐食关系型数据库的市场,作为一个与时俱进的码农了解一下新技术是必须的,尤其是在读了<NoSql精粹 ...
- 解决 U 盘写保护的问题
插了一个 U 盘,想格式化或者创建文件,但是提示我 U 盘是写保护的. 解决方法如下: Open a command prompt type DISKPART press type LIST VOLU ...
- Maven 命令
win7环境下,Maven跳过测试编译项目的命令: 首先,在cmd环境下执行cd命令移动到需要编译的项目的home目录,然后执行命令:mvn install -Dmaven.test.skip= ...