android触摸语音事件

android中的各种事件是由各种不同的监听器来完成,比如按键事件是由OnClickListener实现监听,触摸是由OnTouchListener实现监听的。

首先设置监听,然后传入要监听的事件

public class Touch913MainActivity extends Activity {

	RelativeLayout rl;
	TextView tv,tv2;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_touch913_main);
        
        rl=(RelativeLayout)findViewById(R.id.relativeLayout1);
        tv2=(TextView)findViewById(R.id.textView2);
        tv=(TextView)findViewById(R.id.textView1);
        
        rl.setOnTouchListener(new OnTouchListener() {
			
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				System.out.println("触摸的是RelativeLayout");						
				return false;
			}
		});
        
        tv.setOnTouchListener(new OnTouchListener() {		
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				System.out.println("触摸的是TextView");
				int num = event.getAction();
				int pointer = event.getPointerCount();
				StringBuffer str = new StringBuffer();
				
				for(int i=0;i<pointer;i++){
					str.append("X:"+event.getX(i));
					str.append("Y:"+event.getY(i));
					str.append("持续时间:"+event.getEventTime());
					str.append("  "+num);
				}
				tv2.setText(str);
				return false;
			}
		});       
    }
在Logcat中你每触摸一个空间,都会给出相应触摸信息显示


语音识别:

首先实现 TextToSpeech.OnInitListener,// 语音引擎初始化的时候会调用这个接口 

和            TextToSpeech.OnUtteranceCompletedListener // 单词读完了

然后调用读取TextView上单词的TexttoSpeech()函数,然后调用读取函数speek()


/**
 * TextToSpeech 让电脑读单词的一个工具
 * 
 * android 1.6 之后开始支持
 * 语言:英文,欧洲的一些。亚洲语言不支持。
 */
public class MyttsActivity extends Activity 
implements TextToSpeech.OnInitListener, // 语音引擎初始化的时候会调用这个接口
TextToSpeech.OnUtteranceCompletedListener { // 单词读完了
   
	TextView tv;
	Button btn;
	TextToSpeech tts;	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tv = (TextView)findViewById(R.id.textView1);
        btn = (Button)findViewById(R.id.button1);       
        tts = new TextToSpeech(this, this);       
        btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				tts.speak(tv.getText().toString(), TextToSpeech.QUEUE_ADD, null);
			}
		});
    }
    // 开始初始化引擎的时候调用
	@Override
	public void onInit(int status) {
		//读取的语言
		int result = tts.setLanguage(Locale.US);//设置读取的语言
		
		tts.setSpeechRate(10);//设置读取的速度
		
		if (result == TextToSpeech.LANG_MISSING_DATA || 
				result == TextToSpeech.LANG_NOT_SUPPORTED) {
			Toast.makeText(this, "不支持的语言!", Toast.LENGTH_SHORT).show();
		}	
	}
	// 单词读完了调用
	@Override
	public void onUtteranceCompleted(String utteranceId) {
		// TODO Auto-generated method stub
	}
}


以上只是我自己自学android入门的一些事件简介,作为总结和记录学习过程的文章,深挖还是要自己去玩。

你可能感兴趣的:(android触摸语音事件)