WEB开发网
开发学院手机开发Android 开发 Android原生(Native)C开发之三:鼠标事件篇 阅读

Android原生(Native)C开发之三:鼠标事件篇

 2010-05-31 14:42:00 来源:WEB开发网   
核心提示:realy = ev0[i].value;else if (ev0[i].type == 1) {if (ev0[i].code == 158) {//if key esc then exitreturn 0;}} else if (ev0[i].type == 0 && ev0[i].code == 0 && ev0

realy = ev0[i].value;

else if (ev0[i].type == 1) {

if (ev0[i].code == 158) {

//if key esc then exit

return 0;

}

} else if (ev0[i].type == 0 && ev0[i].code == 0 && ev0[i].value == 0) {

realx = 0, realy = 0;

}

printf("event(%d): type: %d; code: %3d; value: %3d; realx: %3d; realy: %3d ", i,

ev0[i].type, ev0[i].code, ev0[i].value, realx, realy);

}

return 1;

}

int main(void) {

int done = 1;

printf("sizeof(struct input_event) = %d ", sizeof(struct input_event));

event0_fd = open("/dev/input/event0", O_RDWR);

if ( event0_fd < 0 )

return -1;

while ( done ) {

printf("begin handel_event0... ");

done = handle_event0();

printf("end handel_event0... ");

}

if ( event0_fd > 0 ) {

close(event0_fd);

event0_fd = -1;

}

return 0;

}

用交叉编译器编译好后(编译过程就不再详述,请参见 blog:Android原生(Native)C开发之一:环境搭建篇),push至 emulator后执行后,切换到android 模拟器,在模拟器上点几下mouse,程序就会打出你点击的信息,效果如下,果然能正确得到点击的 mouse pos,如下图:

分析上面的返回值,发现当按下 mouse left button 时,会得到4个事件,2个 type = 3 的事件返回了 pos x, pos y 的值,即mouse click pos, 另外1个 type = 1 的事件是按键事件(keydown),value就是按下的键的key,为0的应该就是 key的release事件,当松开 mouse时,也会得到两个 type = 1, 0 的事件,没有仔细去看它们的返回值,反正已经正确得到了 mosue的事件,下一步就是改SDL的事件驱动源码了...

上一页  1 2 

Tags:Android 原生 Native

编辑录入:coldstar [复制链接] [打 印]
赞助商链接