0

Bitmap を使用してメニュー画像を描画しましたが、TouchEvent を使用して別の Activity を MenuLoading アクティビティにロードしようとしたときに機能しませんでした。

誰でも問題を解決できますか?よろしくお願いします。

使用したコードは次のとおりです。

メニュービュー:

public class MenuView extends View{
    private Bitmap menu;
    boolean result = false;

    public MenuView(Context context) {
        super(context);
        menu = BitmapFactory.decodeResource(getResources(), R.drawable.menu2);
  }
  @Override
  protected void onDraw(Canvas canvas) {
      canvas.drawBitmap(menu, 0, 0, null);
  }

  @Override
  public boolean onTouchEvent(MotionEvent ev) {
      switch (ev.getAction()) {
      case MotionEvent.ACTION_DOWN: {
          // Code on finger down
          float posX = ev.getX();
          float posY = ev.getY();
          float x1 = 296, x2 = 528, y1 = 246, y2 = 304;
          if ((posX >= x1 && posX <= x2) && (posY >= y1 && posY <= y2)) {
              // we are in the square
              result = true;
          }
          else {
              // we are somewhere else
          }
          break;
      }
      case MotionEvent.ACTION_UP: {
          // Code on finger up
          break;
      }
      case MotionEvent.ACTION_MOVE: {
          // Code on finger move
          break;
      }
      }
      invalidate();
      return result;
  }
}

および MenuLoading アクティビティ:

public class MenuLoading extends Activity {
    MenuView View;
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            View = new MenuView(this);
            setContentView(View);
            if (View.result == true){
                Intent i = new Intent (this, GameLoading.class);
                startActivity(i);
            }
        }

}
4

1 に答える 1

0

このコードを に入れても意味がありませんonCreate:

if (View.result == true){
            Intent i = new Intent (this, GameLoading.class);
            startActivity(i);
}

イベント ハンドラで移動します。

// we are in the square
Intent i = new Intent (getContext(), GameLoading.class);
((Activity)getContext()).startActivity(i);
return true;
于 2013-03-02T08:20:57.827 に答える