Advertisement
Roctik

Untitled

Sep 9th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.37 KB | None | 0 0
  1. public class TransparentCircle extends View {
  2.  
  3.     Bitmap bm;
  4.     Canvas cv;
  5.     Paint eraser;
  6.  
  7.     public TransparentCircle(Context context) {
  8.         super(context);
  9.         Init();
  10.     }
  11.  
  12.     public TransparentCircle(Context context, AttributeSet attrs) {
  13.         super(context, attrs);
  14.         Init();
  15.     }
  16.  
  17.     public TransparentCircle(Context context, AttributeSet attrs,
  18.                              int defStyleAttr) {
  19.         super(context, attrs, defStyleAttr);
  20.         Init();
  21.     }
  22.  
  23.     private void Init() {
  24.         eraser = new Paint();
  25.         eraser.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
  26.         eraser.setAntiAlias(true);
  27.     }
  28.  
  29.     @Override
  30.     protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  31.  
  32.         if (w != oldw || h != oldh) {
  33.             bm = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
  34.             cv = new Canvas(bm);
  35.         }
  36.         super.onSizeChanged(w, h, oldw, oldh);
  37.     }
  38.  
  39.     @Override
  40.     protected void onDraw(Canvas canvas) {
  41.  
  42.         int w = getWidth();
  43.         int h = getHeight();
  44.         int radius = 100;
  45.  
  46.         bm.eraseColor(Color.TRANSPARENT);
  47.         cv.drawColor(getResources().getColor(R.color.colorBgMapDialog));
  48.         cv.drawCircle(w / 2, h / 2, radius, eraser);
  49.         canvas.drawBitmap(bm, 0, 0, null);
  50.         super.onDraw(canvas);
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement