@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) {}
            });
  }
Example #4
0
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(new SampleView(this));
 }