android圆形的ImageView

view plain print ?
  1. packagecom.example.testsam;
  2. importandroid.content.Context;
  3. importandroid.graphics.Bitmap;
  4. importandroid.graphics.Bitmap.Config;
  5. importandroid.graphics.Canvas;
  6. importandroid.graphics.Paint;
  7. importandroid.graphics.PorterDuff.Mode;
  8. importandroid.graphics.PorterDuffXfermode;
  9. importandroid.graphics.Rect;
  10. importandroid.graphics.drawable.BitmapDrawable;
  11. importandroid.graphics.drawable.Drawable;
  12. importandroid.util.AttributeSet;
  13. importandroid.widget.ImageView;
  14. /**
  15. *圆形的Imageview
  16. *@since2012-11-02
  17. *
  18. *@authorbingyang.djj
  19. *
  20. */
  21. publicclassCircleImageViewextendsImageView{
  22. privatePaintpaint=newPaint();
  23. publicCircleImageView(Contextcontext){
  24. super(context);
  25. }
  26. publicCircleImageView(Contextcontext,AttributeSetattrs){
  27. super(context,attrs);
  28. }
  29. publicCircleImageView(Contextcontext,AttributeSetattrs,intdefStyle){
  30. super(context,attrs,defStyle);
  31. }
  32. @Override
  33. protectedvoidonDraw(Canvascanvas){
  34. Drawabledrawable=getDrawable();
  35. if(null!=drawable){
  36. Bitmapbitmap=((BitmapDrawable)drawable).getBitmap();
  37. Bitmapb=toRoundCorner(bitmap,14);
  38. finalRectrect=newRect(0,0,b.getWidth(),b.getHeight());
  39. paint.reset();
  40. canvas.drawBitmap(b,rect,rect,paint);
  41. }else{
  42. super.onDraw(canvas);
  43. }
  44. }
  45. privateBitmaptoRoundCorner(Bitmapbitmap,intpixels){
  46. Bitmapoutput=Bitmap.createBitmap(bitmap.getWidth(),
  47. bitmap.getHeight(),Config.ARGB_8888);
  48. Canvascanvas=newCanvas(output);
  49. finalintcolor=0xff424242;
  50. finalRectrect=newRect(0,0,bitmap.getWidth(),bitmap.getHeight());
  51. paint.setAntiAlias(true);
  52. canvas.drawARGB(0,0,0,0);
  53. paint.setColor(color);
  54. intx=bitmap.getWidth();
  55. canvas.drawCircle(x/2,x/2,x/2,paint);
  56. paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));
  57. canvas.drawBitmap(bitmap,rect,rect,paint);
  58. returnoutput;
  59. }
  60. }


可以直接当组件在布局文件中使用了

更多相关文章

  1. Android(安卓)之 ProgressDialog用法介绍
  2. Android实现圆角照片和圆形照片
  3. Android(安卓)之 ProgressDialog用法介绍
  4. android日历实现
  5. android 自定义组件随着手指自动画圆
  6. android软件开发:横竖屏
  7. android拖动条和评分组件的使用
  8. Android(安卓)ListView组件中android:drawSelectorOnTop含义
  9. Android菜鸟进阶之路一-Android基础

随机推荐

  1. Android(安卓)调用系统应用选文件
  2. Android实现短信验证码自动拦截读取功能
  3. android之图片截取
  4. Android(安卓)gesture 原理
  5. android ViewPager 实现点击小圆点切换页
  6. activity的几种启动模式
  7. Android(安卓)display架构分析-SW架构分
  8. Android保存位图
  9. Android实现再图标右上角显示数字
  10. Android:SQLite数据库