获取六边形头像(封装六边形方法)

原创 2015年07月08日 11:42:08


//画六边形封装的方法,调用的话当数据成功加载下来的时候再调用

public static Bitmap getSixBitmap(Bitmap bitmap) {  

int width = bitmap.getWidth();
int height = bitmap.getHeight();
Bitmap output = Bitmap.createBitmap(width,  
       height, Config.ARGB_8888);  
   Canvas canvas = new Canvas(output);  
  
   final int color = 0xff424242;  
   final Paint paint = new Paint();  
  
   paint.setAntiAlias(true);  
   canvas.drawARGB(0, 0, 0, 0);  
   paint.setColor(color);  
   
   
   float centerX = width/2;
       float centerY = height/2;
       float radius = width/2;
       double radian30 = 30*Math.PI/180;
       float a = (float) (radius*Math.sin(radian30));
       float b = (float) (radius*Math.cos(radian30));


       Path localPath = new Path();
       localPath.moveTo(centerX, 0);
       localPath.lineTo(centerX+b, centerY-a);
       localPath.lineTo(centerX+b, centerY+a);
       localPath.lineTo(centerX, height);
       localPath.lineTo(centerX-b, centerY+a);
       localPath.lineTo(centerX-b, centerY-a);
       localPath.close();
       
       canvas.drawPath(localPath, paint);
       
   paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));  
   canvas.drawBitmap(bitmap, 0.0f, 0.0f, paint);  
  
   return output;  

}



/**

* @Name: loadAvatarImage 

* @Description: 获取六边形头像

* @param  url

* @param  imageView    

* @return void    返回类型 

* @throws 

*

*/

public static void loadHexagonAvatarImage(String url, ImageView imageView){

if(url == null || url.length() <= 0)

return;

DisplayImageOptions options = new DisplayImageOptions.Builder()

.cacheOnDisc(true)

.cacheInMemory(false)

.showImageOnLoading(R.drawable.home_user_avatar_default)

.showImageOnFail(R.drawable.home_user_avatar_default)

.build();

ImageLoader.getInstance().displayImage(url, imageView, options, new SimpleImageLoadingListener(){

@Override

public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

if(loadedImage != null)

((ImageView)view).setImageBitmap(getHexagonBitmap(loadedImage));

super.onLoadingComplete(imageUri, view, loadedImage);

}

});

}


相关文章推荐

高效判断点是否在正六边形蜂窝内的方法

设计中,用到需要判断点是否在正六边形内,先是在网上搜了好几篇文章,发现都搞的挺复杂的,往往要使用向量运算计算面积夹角距离方向等,或者是射线法算交点,或者是切分三角形。我考虑到正六边形的特殊性,发现这个...

蜂窝六边形消除新游戏如何获取高分

如果还未玩过的朋友,可以到这里去下载体验:http://android.myapp.com/myapp/detail.htm?apkName=com.ddgame.studio.hex.fever ...

实现正六边形、圆形及带倒角正六边形的头像显示

从网上下的一个圆形头像demo,然后在上面的基础上实现了自己的正六边形及带倒角的正六边形。 废话不多说,直接上代码   import android.content.Context; imp...
  • qq_q123
  • qq_q123
  • 2016年08月01日 16:33
  • 504

html5 六边形

  • 2012年04月19日 22:22
  • 2KB
  • 下载

CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等)

CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等) Star (6-points)     1 2 3 4 5...
  • zh89233
  • zh89233
  • 2013年11月15日 12:41
  • 704

正六边形demo

  • 2017年07月03日 20:38
  • 1020B
  • 下载

Matlab矩形区域六边形填充函数

  • 2016年09月28日 23:30
  • 64KB
  • 下载

JS开发HTML5游戏《神奇的六边形》(二)

近期出现一款魔性的消除类HTML5游戏《神奇的六边形》,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏。...

android正六边形按钮

  • 2016年02月26日 17:49
  • 219KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取六边形头像(封装六边形方法)
举报原因:
原因补充:

(最多只允许输入30个字)