@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, COLOR_MENU_ID, 0, "Color").setShortcut('3', 'c'); menu.add(0, EMBOSS_MENU_ID, 0, "Emboss").setShortcut('4', 's'); menu.add(0, BLUR_MENU_ID, 0, "Blur").setShortcut('5', 'z'); menu.add(0, ERASE_MENU_ID, 0, "Erase").setShortcut('5', 'z'); return true; }
@Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); return true; }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_paint); mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setDither(true); mPaint.setColor(0xFFFF0000); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStrokeCap(Paint.Cap.ROUND); mPaint.setStrokeWidth(12); mEmboss = new EmbossMaskFilter(new float[] {1, 1, 1}, 0.4f, 6, 3.5f); mBlur = new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL); SurfaceView s = (SurfaceView) findViewById(R.id.surface_main); s.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { float x = event.getX(); float y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: touch_start(x, y); break; case MotionEvent.ACTION_MOVE: touch_move(x, y); break; case MotionEvent.ACTION_UP: // TODO: proper synchronization with the updater thread; touch_up(); break; } return true; } }); s.getHolder() .addCallback( new SurfaceHolder.Callback() { @Override public void surfaceDestroyed(final SurfaceHolder holder) { Log.d(null, "Stopped updating the canvas"); updater.setOkToRun(false); } @Override public void surfaceCreated(final SurfaceHolder holder) { Log.d(DISPLAY_SERVICE, "Resume or start updater thread."); if (t == null) { t = new Thread(updater); t.start(); } updater.setH(holder); updater.setOkToRun(true); synchronized (updater) { updater.notifyAll(); } } @Override public void surfaceChanged( final SurfaceHolder holder, int format, int width, int height) {} }); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new SampleView(this)); }