友好的人性的界面不只是吸引眼球的设计良好的呈现界面,也需要流畅的友好交互,事件处理是交互的重要内容。
×监听事件
包含三个内容:EventSource,事件源组件,产生事件的地方;Event,事件,产生事件对象,传递事件信息;EventLisener,事件监听器,监听事件源的可能的事件,里面有事件处理器用于处理事件。事件监听器也是一种“类”,必须实现(implements)一个×××Lisener接口。实现监听的过程主要任务是实现事件监听器,然后将事件监听器注册给事件源就可以了。
1、内部类监听
public ***anctivity extends Activity{
//bn为一个控件实例,绑定事件监听器
bn.set***Listner(new ***Listner()); class ***Listener inmplements ***Listener{ //实现事件处理器,例如: @Override public void onClick(){} } }
2、匿名内部类监听
//selfView是一个实例,匿名内部类监听 selfView.×××Listener(new ×××Listener() {事件处理器} );
3、此外还有外部类、直接绑定到Activity和控件进行监听
键盘事件(相应的是手机键盘,可以响应电脑键盘吗?)
1 selfView.setOnKeyListener(new View.OnKeyListener() { 2 3 @Override 4 public boolean onKey(View v, int keyCode, KeyEvent event) { 5 //getKeyCode()获取按下的键 6 switch (event.getKeyCode()){ 7 case KeyEvent.KEYCODE_W: 8 ××× 9 break; 10 } 11 return true; 12 } 13 });
//去掉窗口标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
//全屏显示,下面是什么语法,getWindow().setFlags()
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//获取窗口管理器
WindowManager windowManager=getWindowManager();
Display display= windowManager.getDefaultDisplay();
DisplayMetrics metrics=new DisplayMetrics();
//获取屏幕宽和高
display.getMetrics(metrics);
selfView.currentX=metrics.widthPixels/2;
×回调机制处理事件
组件自己特定方法处理事件,这是通过重写类的时间处理方法来实现的,此类方法通常为Boolean类型的,当返回faulse时,事件会向外传播,激发组件所在Activity的回调事件。android最先触发的是事件监听器,然后是组件的回调方法。
×Configuration
//获取系统的configuration对象,可以获取系统属性,如,cfg.orientation
Configuration cfg=getResources().getConfiguration();
//监听系统设置的更改
onConfigurationChanged(Configuration newConfig)
×Handler消息传递机制
UI线程,主线程,只允许UI线程修改UI组件。使用Handler来传递关于UI的线程相关的消息。Handler类包含用于处理消息的方法。