[問題] activity捕捉ontoucheven 事件

看板AndroidDev作者 (瘋子)時間11年前 (2013/03/15 10:02), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
@Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub if (rotatBitmap == null) { throw new NoBitMapError("Error,No bitmap in RotatView!"); } switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { down_x = event.getX(); down_y = event.getY(); current_degree = detaDegree(o_x, o_y, down_x, down_y); vRecord.reset(); // handler.sendEmptyMessage(stop); a = a_max; break; } case MotionEvent.ACTION_MOVE: { down_x = target_x = event.getX(); down_y = target_y = event.getY(); float degree = detaDegree(o_x, o_y, target_x, target_y); // 滑過的弧度增量 float dete = degree - current_degree; // 如果小於-90度說明 它跨周了,需要特殊處理350->17, if (dete < -270) { dete = dete + 360; // 如果大於90度說明 它跨周了,需要特殊處理-350->-17, } else if (dete > 270) { dete = dete - 360; } lastMoveTime = System.currentTimeMillis(); vRecord.add(dete, lastMoveTime); deta_degree += dete; //addDegree(dete); circle = (int) (deta_degree / 360); Log.e("dete", String.valueOf(circle)); current_degree = degree; postInvalidate(); break; } case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: { a = a_min; //double lastupTime = System.currentTimeMillis(); //double detaTime = lastupTime - lastMoveTime; up_x = event.getX(); up_y = event.getY(); up_degree = detaDegree(o_x, o_y, up_x, up_y); // 放手時的速度 speed = speed + vRecord.getSpeed(); if (speed > 0) { speed = Math.min(VRecord.max_speed, speed); } else { speed = Math.max(-VRecord.max_speed, speed); } // System.out.println("speed:" + speed); if (speed > 0) { isClockWise = true; // v = 1; } else { isClockWise = false; // v = -1; } currentTime = System.currentTimeMillis(); handler.sendEmptyMessage(0); break; } } return true; } 這是ontoucheven裡面的動作 這個class繼承View 我想捕捉這個動作裡面circle變量,他會隨著使用者觸控不斷增加變量 把circle設成全域變數 在另外一個activity捕捉到的只有初始者0 要怎麼做 才能在activity 知道使用者已經touch 並不斷傳回circle值 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.98.7

03/15 13:40, , 1F
你確定這事件有被觸發?
03/15 13:40, 1F

03/15 15:13, , 2F
有 circle 在log裡 有跑出來啊
03/15 15:13, 2F

03/15 15:25, , 3F
真宣告在全域的話,在其他地方監聽這個變數就行了。
03/15 15:25, 3F

03/19 14:41, , 4F
跨 Activity傳遞要變數用 Intent
03/19 14:41, 4F

03/19 14:42, , 5F
另外建議..souce code貼到板後要排版..
03/19 14:42, 5F
文章代碼(AID): #1HGe4iJc (AndroidDev)