0

トリガーされたタッチイベントから一連の画像を描画したいと思います。返却された のpath中からonDraw、どこに絵を描くかのガイドとして使用します。現在の私の問題は、1 つだけでなく一連のランダムな画像を表示することです。その後、最終的に表示される画像はゆっくりとフェードアウトします。

ここに画像の説明を入力

  public class SingleTouchEventView extends View {
  private Paint paint = new Paint();
  private Path path = new Path();
  float eventX;
  float eventY;
  Bitmap bmp;

  public SingleTouchEventView(Context context, AttributeSet attrs) {
    super(context, attrs);

    paint.setAntiAlias(true);
    paint.setStrokeWidth(6f);
    paint.setColor(Color.BLACK);
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeJoin(Paint.Join.ROUND);
  }

  @SuppressLint("DrawAllocation")
@Override
  protected void onDraw(Canvas canvas) {

    /*Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_stub);
    canvas.drawColor(Color.BLACK);
    canvas.drawBitmap(bmp, 10, 10, null);*/
    canvas.drawPath(path, paint);


   int rand = (int) (Math.random() * 3);
    Log.d("Integer", ""+rand);
   if(rand==0){
    bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_stub);
   }else
    if(rand==1)
    {
        bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_stub);
    }
    else if(rand==2)
    {
        bmp = BitmapFactory.decodeResource(getResources(), R.drawable.bg_striped_img);
    }

canvas.drawBitmap(bmp, eventX, eventY, paint);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    eventX = event.getX();
    eventY = event.getY();

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
      path.moveTo(eventX, eventY);
      return true;
    case MotionEvent.ACTION_MOVE:
      path.lineTo(eventX, eventY);
      break;
    case MotionEvent.ACTION_UP:
      // nothing to do
      break;
    default:
      return false;
    }

    // Schedules a repaint.
    invalidate();
    return true;
  }
}
4

0 に答える 0