Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>It works but didn't Draw Path.</p> <pre><code>import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BlurMaskFilter.Blur; import android.graphics.BitmapFactory; import android.graphics.BlurMaskFilter; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffXfermode; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; public class StartActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new TouchView(this)); } class TouchView extends View{ Bitmap bgr; Bitmap overlayDefault; Bitmap overlay; Paint pTouch; int X = -100; int Y = -100; Canvas c2; public TouchView(Context context) { super(context); bgr = BitmapFactory.decodeResource(getResources(),R.drawable.bgr); overlayDefault = BitmapFactory.decodeResource(getResources(),R.drawable.over); overlay = BitmapFactory.decodeResource(getResources(),R.drawable.over).copy(Config.ARGB_8888, true); c2 = new Canvas(overlay); pTouch = new Paint(Paint.ANTI_ALIAS_FLAG); pTouch.setXfermode(new PorterDuffXfermode(Mode.SRC_OUT)); pTouch.setColor(Color.TRANSPARENT); pTouch.setMaskFilter(new BlurMaskFilter(15, Blur.NORMAL)); } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: { X = (int) ev.getX(); Y = (int) ev.getY(); invalidate(); break; } case MotionEvent.ACTION_MOVE: { X = (int) ev.getX(); Y = (int) ev.getY(); invalidate(); break; } case MotionEvent.ACTION_UP: break; } return true; } @Override public void onDraw(Canvas canvas){ super.onDraw(canvas); //draw background canvas.drawBitmap(bgr, 0, 0, null); //copy the default overlay into temporary overlay and punch a hole in it c2.drawBitmap(overlayDefault, 0, 0, null); //exclude this line to show all as you draw c2.drawCircle(X, Y, 80, pTouch); //draw the overlay over the background canvas.drawBitmap(overlay, 0, 0, null); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload