如何在Android中利用可拉的绘制一个圆角

  介绍

如何在Android中利用可拉的绘制一个圆角?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> 1。创建类RoundCircleDrawable继承可拉的

public  class  RoundCircleDrawable  extends 可拉的{   private 才能;Paint  mPaint;//画笔   private 才能;int  mWidth;//图片宽与长度的最小值   private 才能;int  mRadius;//半径   private 才能;int  mRound;//圆角   private 才能;RectF  mRectF;//矩形   private 才能;Bitmap  mBitmap;//图片   private 才能Type  mType =, Type.TYPE_ROUND;//默认是矩形//才能设置类型   enum 类型{才能   ,,,,,,TYPE_ROUND TYPE_CICLE;   ,,}   public 才能;RoundCircleDrawable (Bitmap 位图){   ,,,this.mBitmap =,位图;   ,,,//初始化画笔   ,,,mPaint =, new 油漆();   ,,,mPaint.setAntiAlias(真正的);   ,,,BitmapShader  shader =, new  BitmapShader (mBitmap, TileMode.CLAMP,, TileMode.CLAMP);   ,,,mPaint.setShader(材质);   ,,,mWidth =, Math.min (mBitmap.getWidth (),, mBitmap.getHeight ());   ,,,mRadius =, mWidth /, 2;   ,,}   ,/* *   ,,*,向外提供设置图片类型的方法   ,,*,@param 类型   ,,*/public 才能;void  setType (Type 类型){   ,,,this.mType =,类型;   ,,}   ,/* *   ,,*,暴露给外面设置圆角的大小   ,,*,   ,,*,@param 圆的   ,,*/public 才能;void  setRound (int 圆),{   ,,,this.mRound =,圆形;   ,,}   @Override才能   public 才能;void  setBounds (int 左,int ,, int ,, int 底部),{   ,,,super.setBounds(,,,,,,底部);   ,,,mRectF =, new  RectF(左,,,,,,底部);   ,,}   @Override才能   public 才能;void 画(Canvas 画布),{   ,,,if  (mType ==, Type.TYPE_ROUND), {   ,,,,,canvas.drawRoundRect (mRound, mRectF,还以为,mRound, mPaint);   ,,,}else  {   ,,,,,canvas.drawCircle(时间/mWidth  2, mWidth /, 2, mRadius,, mPaint);   ,,,}   ,,}   @Override才能   public 才能;int  getIntrinsicWidth (), {   ,,,if  (mType ==, Type.TYPE_CICLE), {   ,,,,,return  mWidth;   ,,,}else  {   ,,,,,return  mBitmap.getWidth ();   ,,,}   ,,}   @Override才能   public 才能;int  getIntrinsicHeight (), {   ,,,if  (mType ==, Type.TYPE_CICLE), {   ,,,,,return  mWidth;   ,,,}else  {   ,,,,,return  mBitmap.getHeight ();   ,,,}   ,,}   @Override才能   public 才能;void  setAlpha (int α),{   ,,,mPaint.setAlpha(α);   ,,}   @Override才能   public 才能;void  setColorFilter (ColorFilter  cf), {   ,,,mPaint.setColorFilter (cf);   ,,}   @Override才能   public 才能;int  getOpacity (), {   ,,,return  PixelFormat.TRANSLUCENT;   ,,}   }

<强> 2。实现方法

public  class  RoundActivity  extends  Activity  {   private 才能;ImageView  mImageView;   @Override才能   protected 才能;void  onCreate (Bundle  savedInstanceState), {   ,,,super.onCreate (savedInstanceState);   ,,,setContentView (R.layout.activity_round_drawable);   ,,,mImageView =, (ImageView), findViewById (R.id.iv_round);   ,,,Bitmap  Bitmap =, BitmapFactory.decodeResource (getresource (),, R.drawable.aa);   ,,,//RoundImageDrawable  drawable =, new  RoundImageDrawable(位图);   ,,,//drawable.setRound (30);   ,,,RoundCircleDrawable  drawable =, new  RoundCircleDrawable(位图);   ,,,drawable.setRound (50);   ,,,mImageView.setImageDrawable(可拉的);   ,,}   }

看完上述内容,你们掌握如何在Android中利用可拉的绘制一个圆角的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

如何在Android中利用可拉的绘制一个圆角