2013-03-02 93 views
0

我通過使用位圖繪製菜單圖片,但當我嘗試使用TouchEvent在我的MenuLoading Activity中加載另一個活動時,它不起作用。處理觸摸查看Android時出錯

任何人都可以解決這個問題嗎?先進的謝謝你。

下面是我使用的代碼:

MenuView:

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); 
      } 
     } 

} 
+0

什麼是錯誤?請張貼logcat或解釋「沒有工作」是什麼意思。 +把日誌打印posX和posY – ben75 2013-03-02 08:13:48

+0

當我點擊菜單,它不會改變到我的其他活動... – 2013-03-02 08:16:22

+0

奇怪的是,它不打印任何東西......我註定了...... – 2013-03-02 08:32:11

回答

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; 
+0

當我將它移動到MenuView中的事件處理程序時,它表示startActivity(i)方法未識別... – 2013-03-02 08:31:43

+0

對不起,我的錯誤。我剛剛編輯了我的帖子 – ben75 2013-03-02 08:34:10

+0

非常感謝您的幫助,但問題仍然存在,我無法將此活動與TouchEvent鏈接。你認爲使用位圖繪製圖片作爲菜單有問題嗎? – 2013-03-02 08:44:01