创建上圆角矩形的方法

直接上代码,这是一个模仿pinterest的函数,当然可以绘制自己想要的矩形

 private Bitmap createPininterestPhoto(int x, int y, Bitmap image, float radius) 
  { 
      //根据源文件新建一个darwable对象  
      Drawable imageDrawable = new BitmapDrawable(image); 


      // 新建一个新的输出图片  
      Bitmap output = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888); 
      Canvas canvas = new Canvas(output); 
      // 新建一个矩形  
      RectF outerRect = new RectF(0, 0, x, y); 


      Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
      paint.setColor(Color.RED); 
      
      Path mPath = new Path();
      mPath.moveTo(0, y);
      mPath.lineTo(x, y);
      mPath.lineTo(x, 30);
      RectF mRectRightTop = new RectF(x-radius,0, x,radius);
      
      RectF mRectLeftTop = new RectF(0,0,radius,radius);
      mPath.arcTo(mRectRightTop, 0, -90);
      mPath.lineTo(30, 0);
      mPath.arcTo(mRectLeftTop, 270, -90);
      mPath.lineTo(0, y);
//      mPath.close();
      canvas.drawPath(mPath, paint);   
      //canvas.drawCircle(radius, radius, radius, paint);  


      // 将源图片绘制到这个圆角矩形上  
      // 产生一个红色的圆角矩形  


      paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); 
      imageDrawable.setBounds(0, 0, x, y); 
      canvas.saveLayer(outerRect, paint, Canvas.ALL_SAVE_FLAG);
      
      imageDrawable.draw(canvas); 
      canvas.restore(); 
      return output; 
  } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值