Home > JAVA | Mobile Programming > เขียน Android การใช้งาน Single TouchScreen

เขียน Android การใช้งาน Single TouchScreen

January 1, 2012 No Comments

ในมือถือ android หรือว่าพวก tablet นั้นความสามารถที่ต่างจากมือถือรุ่นเก่านั้น มีอยู่อย่างหนึ่งคือ หน้าจอแบบสัมผัสหรือที่เรียกว่า TouchScreen นั้นเอง แต่การ touch screen นั้นก็มีแบ่งออก 2 แบบคือ single touch screen กับ multi touch screen ซึ่งวันนี้ผมจะเอาตัวอย่างการใช้งานแบบ single touch screen มาให้ดูก่อน โดยครั้งนี้ผมจะใช้ api android 2.3.3 ซึ่งก็ลองอัพเวอร์ชั่นดูบ้างว่าโค้ดมีปัญหาอะไรรึเปล่าเพราะสังเกตว่ามือถือที่ออกมาหลังๆๆจะไล่ออก 2.3 กันซะส่วนใหญ่ยิ่งรุ่น top แพงๆๆก็ไป 4.0 ละ โดยผมได้สร้างโปรเจ็คที่ชื่อ THTouchScreen โดยใช้ api 2.3.3 มี min SDK Version 10 ครับโดยสร้างตามรูปเลยครับ

เมื่อสร้างเสร็จเราก็เริ่มลงโค้ดกันเลยครับโดยการใช้งาน Touch Screen นั้นต้องทำการ implement OnTouchListener ซึ่งต้องทำการ import android.view.View.OnTouchListener; เข้ามา โดยตัวอย่างนี้จะมีการสร้าง TextView ขึ้นมาตัวหนึ่งเพื่อแสดงผลการ Touch Screen ที่เกิดขึ้น โดยใช้ String Builder เป็นตัวเก็บข้อมูลก่อนไปกำหนดค่าให้ TextView โดย String Builder ก็เป็นคลาสตัวช่วยในการใช้งานของ String อันหนึ่ง

โค้ดทั้งหมดครับ

 
package com.thaicoding.THTouchScreen;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.TextView;


public class THTouchScreen extends Activity implements OnTouchListener {
	StringBuilder builder = new StringBuilder();
	TextView textView;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        textView = new TextView(this);
        textView.setText("Touch and drag (one finger)");
        textView.setOnTouchListener(this);
        setContentView(textView);
    }

	@Override
	public boolean onTouch(View v, MotionEvent event) {
		builder.setLength(0);
		
		switch(event.getAction()){
		case MotionEvent.ACTION_DOWN:
			builder.append("down, ");
			break;
		case MotionEvent.ACTION_MOVE:
			builder.append("move, ");
			break;
	
		case MotionEvent.ACTION_CANCEL:
			builder.append("cancel, ");
			break;
		case MotionEvent.ACTION_UP:
			builder.append("up, ");
			break;
		}
		builder.append(event.getX());
		builder.append(",");
		builder.append(event.getY());
		String text = builder.toString();
		
		Log.d("THTouchTest", text);
		textView.setText(text);
		return true;
	}
    

}

เมื่อพิมพ์โค้ดเสร็จแล้วก็ลองรันดูครับแต่อย่าลืมถ้าคุณเลือก version ตามผมก็ต้องสร้าง emulation ตัวที่มี version ตรงกันนะครับ

ผลลัพธ์การรันจะเห็นว่าจะมีการแสดงสถานะและตำแหน่งของจุดที่เราไปสัมผัสโดยในตัวอย่างนี้เป็นแบบ Single Touch Screen ซึ่งจะตรวจจับแค่จุดเดียวเท่านั้น ในสถานนะของ Touch Screen นั้นก็ประกอบด้วย Down คือการที่เรากดลงไปบนหน้าจอ , Up คือ การที่เอานิ้วออกจากหน้าจอ, Move คือการที่เราเอานิ้วไปสัมผัสบนหน้าจอแล้วเคลื่อนที่ , Cancel จะเป็นการยกเลิกใช้หน้าจอสัมผัส ซึ่งจากโค้ดตัวอย่างจะเห็นว่าใน method OnTouchListenerนั้นจะใช้ event.getAction() เพื่อหาว่าสถานะปัจจุบันของหน้าจอสัมผัสนั้นคืออะไรแล้วทำการเก็บข้อมูลเพื่อไปกำหนดค่าให้ TextView แล้วแสดงผลต่อไปส่วนตำแหน่งของจุดที่เราสัมผัสนั้นก็จะเก็บเป็นตำแหน่ง x, y ซึ่งใช้คำสั่ง event.getX() และ event.getY() โดยที่ event นั้นจะเป็นตัวแปรของ MotionEvent ครับ

นี้ก็เป็นตัวอย่างการใช้งาน Single TouchScreen ครับซึ่งเป็นโค้ดอย่างง่ายลองไล่ดูโค้ดนะครับเพื่อความเขาใจมากขึ้น และเนื่องในวันนี้เป็นวันปีใหม่ 2555 ขอให้ทุกท่านจงประสบแต่ความสำเร็จและความสุขนะครับจาก thaicoding.net

Download SourceCode

Tags: , , , , ,

Tags: Single TouchScreen จอสัมผัส มือถือ android เขียน android เขียนโปรแกรม android โปรแกรม android



Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>