Presentation is loading. Please wait.

Presentation is loading. Please wait.

로봇을 조종하자 1/5 UNIT 14 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 터치 이벤트를 처리할 수 있다. 2.

Similar presentations


Presentation on theme: "로봇을 조종하자 1/5 UNIT 14 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 터치 이벤트를 처리할 수 있다. 2."— Presentation transcript:

1 로봇을 조종하자 1/5 UNIT 14 로봇 SW 콘텐츠 교육원 조용수

2 학습 목표 터치 이벤트를 처리할 수 있다. 2

3 미션 3

4 터치 이벤트 Activity –public boolean onTouchEvent (MotionEvent event) View –public boolean onTouchEvent (MotionEvent event) –public void setOnTouchListener(View.OnTouchListener l) OnTouchListener –public abstract boolean onTouch (View v, MotionEvent event) 4

5 터치 이벤트 public final int getAction () –ACTION_UP –ACTION_DOWN –ACTION_MOVE –ACTION_HOVER_ENTER –ACTION_HOVER_EXIT –ACTION_HOVER_MOVE 5 TouchEvent Object InputEvent –ACTION_CANCEL –ACTION_SCROLL –ACTION_OUTSIDE –…

6 터치 이벤트 - 액티비티 6 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="100dp" android:background="#ffff0000" android:gravity="center" android:text="@string/stop" />

7 터치 이벤트 - 액티비티 7 public class MainActivity extends Activity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView)findViewById(R.id.text); } @Override public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: mTextView.setText(R.string.down); return true; case MotionEvent.ACTION_UP: mTextView.setText(R.string.up); return true; } return super.onTouchEvent(event); }

8 터치 이벤트 - 리스너 8 public class MainActivity extends Activity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView)findViewById(R.id.text); mTextView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: mTextView.setText(R.string.down2); return true; case MotionEvent.ACTION_UP: mTextView.setText(R.string.up2); return true; } return false; } }); }

9 터치 이벤트 – 로봇 움직이기 9 public class MainActivity extends RobotActivity { private TextView mTextView; private Device mLeftWheelDevice; private Device mRightWheelDevice; private boolean mLeft; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView)findViewById(R.id.text); mTextView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: mLeftWheelDevice.write(0); mRightWheelDevice.write(0); return true; } return false; } }); }

10 터치 이벤트 – 로봇 움직이기 10 @Override public void onInitialized(Robot robot) { super.onInitialized(robot); mLeftWheelDevice = robot.findDeviceById(Albert.EFFECTOR_LEFT_WHEEL); mRightWheelDevice = robot.findDeviceById(Albert.EFFECTOR_RIGHT_WHEEL); } @Override public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: mLeft = !mLeft; if(mLeft) { mLeftWheelDevice.write(0); mRightWheelDevice.write(30); } else { mLeftWheelDevice.write(30); mRightWheelDevice.write(0); } return true; } return super.onTouchEvent(event); }

11 로봇 조종기 만들기 11

12 터치 이벤트 - 리스너 12 View.OnTouchListener touchListener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub int action = event.getAction(); switch(action) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: if(v.equals(tvLeft)) { LeftWheel.write(20); } else if(v.equals(tvRight)) { RightWheel.write(20); } break; case MotionEvent.ACTION_UP: break; } return true; } };

13 터치 이벤트 – 좌표 저장 13 public class MainActivity extends RobotActivity { Device LeftWheel; Device RightWheel; TextView tvLeft; TextView tvRight; PointF startP; PointF diffP; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startP = new PointF(); diffP = new PointF();

14 터치 이벤트 – 좌표 저장 14 View.OnTouchListener touchListener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub int action = event.getAction(); switch(action) { case MotionEvent.ACTION_DOWN: startP.x = event.getX(); startP.y = event.getY(); break;

15 터치 이벤트 – 좌표 저장 15 case MotionEvent.ACTION_MOVE: diffP.x = event.getX(); diffP.y = event.getY(); int speed = (int)(startP.y - diffP.y)/10; if(v.equals(tvLeft)) { LeftWheel.write(speed); } else if(v.equals(tvRight)) { RightWheel.write(speed); } break; case MotionEvent.ACTION_UP: if(v.equals(tvLeft)) { LeftWheel.write(0); } else if(v.equals(tvRight)) { RightWheel.write(0); } break;


Download ppt "로봇을 조종하자 1/5 UNIT 14 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 터치 이벤트를 처리할 수 있다. 2."

Similar presentations


Ads by Google