我想知道我的应用程序用户界面中的按钮应该听哪些事件?鼠标点击?那些紧迫和释放事件呢?通过触摸屏点击它们是否相同?
谢谢,Tomer
我正在交叉编译一个触摸屏驱动程序,它带有一个ocaml校准应用程序.
我正在尝试编译ARM的驱动程序和应用程序,特别是运行Angström的Beagleboard.
它是这样的:
^_^[raziel@Bebop zytouch-driver-20081121]$ source /usr/local/angstrom/arm/environment-setup
^_^[raziel@Bebop zytouch-driver-20081121]$ make CC=arm-angstrom-linux-gnueabi-gcc
arm-angstrom-linux-gnueabi-gcc -std=gnu99 -g -O2 -Wall -Wextra -Werror -Wstrict-prototypes -Wmissing-prototypes -c -o daemon/config.o daemon/config.c
arm-angstrom-linux-gnueabi-gcc -std=gnu99 -g -O2 -Wall -Wextra -Werror -Wstrict-prototypes -Wmissing-prototypes -c -o daemon/util.o daemon/util.c
arm-angstrom-linux-gnueabi-gcc -std=gnu99 -g -O2 -Wall -Wextra -Werror -Wstrict-prototypes -Wmissing-prototypes -c -o daemon/debug.o daemon/debug.c
arm-angstrom-linux-gnueabi-gcc -std=gnu99 -g -O2 -Wall -Wextra -Werror -Wstrict-prototypes -Wmissing-prototypes -c -o daemon/zytouch_usb.o daemon/zytouch_usb.c
arm-angstrom-linux-gnueabi-gcc -std=gnu99 -g -O2 -Wall -Wextra -Werror -Wstrict-prototypes -Wmissing-prototypes -c -o daemon/zytouchd.o daemon/zytouchd.c
arm-angstrom-linux-gnueabi-gcc daemon/config.o daemon/util.o daemon/debug.o …Run Code Online (Sandbox Code Playgroud) 我正在为Android平台制作我的第一个视频游戏,作为一个晚上和周末的项目.
它很顺利,但我对控制感觉非常不满意.
在此游戏中,您可以在屏幕上左右移动对象.在屏幕的底部是各种各样的"触摸板",这是你的手指应该休息的地方.
/-------------------------\
| |
| |
| |
| Game Area |
| |
| |
| |
| |
| |
/-------------------------\
| |
| Touch Area |
| |
\-------------------------/
Run Code Online (Sandbox Code Playgroud)
我目前正在使用状态变量来保存"MOVING_LEFT,MOVING_RIGHT,NOT_MOVING",并且每帧都根据该变量更新玩家对象的位置.
但是,我的代码读取触摸屏输入并设置此状态变量要么太敏感,要么太迟,取决于我如何调整它:
public void doTouch (MotionEvent e) {
int action = e.getAction();
if (action == MotionEvent.ACTION_DOWN) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
}
else if (action == MotionEvent.ACTION_MOVE) {
if ((int)e.getX() >= this.mTouchX) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
if (this.TouchRect.contains(this.mTouchX, this.mTouchY)) {
this.mTouchDirection …Run Code Online (Sandbox Code Playgroud) 我正在尝试在C#WPF项目中开发一个触摸屏键盘控件,当TextBox获得焦点时它将是可见的,并且在TextBox失去焦点时隐藏.我见过的触摸屏键盘项目是通过将键盘定义为新窗口而不是控件来实现的.
对于我的应用程序,我真的希望将键盘作为主应用程序窗口中的控件.有没有办法允许单击按钮(在键盘控件上)而不会导致TextBox失去焦点?理想情况下,我想在克拉的当前位置放置一个角色.
我有一个使用整个屏幕的iPad应用程序(即UIStatusBarHidden在Info.plist文件中设置为true).主窗口和主视图的帧设置为(0,0,768,1024).主视图启用了多点触控.
视图控制器具有此代码来处理触摸:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInView:nil];
NSLog(@"touchesMoved at location %@", NSStringFromCGPoint(location));
}
}
Run Code Online (Sandbox Code Playgroud)
当我在模拟器中运行应用程序时,它的工作方式与预期相同.当我将鼠标从屏幕的一个边缘移动到另一个边缘时,报告的X值从0变为767.报告的Y值从20变为1023.(这是一个已知的问题,模拟器不报告顶部的触摸即使没有状态栏,屏幕也会有20个像素.)
这有点奇怪: 当我在实际的iPad上运行应用程序时,X值按预期从0到767,但报告的Y值从-6到1017,而不是0到1023,正如我所料.
它似乎在模拟器上正常工作的事实让我怀疑真实设备的触摸屏没有完美校准,我的只是报告关闭六个像素的Y值.任何人都可以验证是这种情况吗?否则,还有什么能够解释Y值与我的预期相差六个像素吗?
(在几天内,我应该有第二台iPad,所以我可以用另一台设备测试它并比较结果.)
我知道这是一个长期存在的问题,但是请注意:我想知道我的网站访问的设备是否是触摸屏.这意味着手机和iPad当然可以单独检测,而且其他触摸屏可能正在运行Windows的风格.有没有机会确定那些鼠标的存在与否?
假设我愿意使用像Modernizr这样的大型JavaScript库.这有帮助吗?
我目前正在开发一个JavaScript应用程序,该应用程序将部署在以自助服务终端模式运行Chrome的触摸屏自助服务终端上.
我注意到当我使用鼠标单击界面上的按钮时,":active"伪类应用的样式在鼠标按下时可见.我的问题是触摸屏幕触发的相同按钮不会触发活动状态.
有没有办法使触摸事件的行为与鼠标点击相同?
我正在为我们的网站添加一些移动可用性优化.作为其中的一部分,我正在调整textfields的type属性,为用户提供预期数据类型的最佳输入工具.
我在触摸屏移动设备中遇到的一个问题是,当使用输入类型="数字"时,不同操作系统上的浏览器,甚至同一操作系统上的不同浏览器,显示不同的屏幕键盘.
iOS 4.3.3(iPhone 4)上的Safari和Android 2.3.4上的Chrome包含一个小数点,但Android 2.3.4上的Firefox没有.
我尝试添加步骤属性(步骤="0.1"),但在Firefox中没有任何改进.
如果我无法显示小数点,我将需要向Firefox展示完整的QWERTY键盘,这显然不会带来最佳的用户体验.它还引发了浏览器/设备嗅探的问题.要么我需要将QWERTY设为默认值,并将数字键盘显示给我可以实际测试的少数几个设备,或者将数字键盘设为默认设置,然后在设备上切换回QWERTY,我知道这会破坏,后一个选项因为我无法测试每一台有史以来的设备,所以不那么强大.
测试对输入类型="数字"的支持不是一个修复,显然浏览器确实支持该元素,它只是没有提供足够的键盘选项来输入所有数字类型.
那么..我想知道是否有人知道一种方法来测试键盘中是否存在某个键(例如小数点),浏览器/操作系统分配给输入类型,和/或是否有其他人有更好的建议,因为我对移动设备很新.
我还应该提到我在这里使用JavaScript,因为这是一个网站,而不是本机应用程序.
谢谢 :)
我正在为我的定制板调整姜饼内核.我正在尝试更换使用片上ADC控制器(三星的S5PV210处理器)的电阻式触摸屏.在我的设计中,我需要一个eGalaxyTouch驱动程序支持的电容控制器.它连接到USB.可以从"make xconfig"菜单轻松启用驱动程序.它有点工作,因为我在串行控制台上添加了一些跟踪,我可以看到它在内核启动期间安装,我看到它在连接/断开USB电缆时安装和卸载.但它在Android用户界面中没有做任何事情.它是一种HID类型的设备.问题是它没有与正确的Android触摸屏软件层连接.我一定错过了什么.必须要有其他东西来强制将此HID连接到管理触摸屏的另一个软件层.
触摸屏驱动程序位于内核/驱动程序/输入/触摸屏.内核/驱动程序/输入中也有一些代码.
有关如何将该HID设备链接到Android触摸屏图层的任何线索?我看看他们是如何做旧电阻的,而不是通过HID完成的,因为它是一个"定制"器件,其中ADC集成在CPU中,而不是通过USB.
android touchscreen device-driver linux-kernel android-source
我正在试图弄清楚如何解决滚动时分配给元素的tapped类,但它生效太快了我需要在实际触摸时稍微延迟它而不是在滚动时触摸,这是我的代码这个怎么运作:
$('div, a, span').filter('[tappable][data-tappable-role]').bind('touchstart', function()
{
var self = $(this);
self.addClass(self.data('tappable-role'));
}).bind('touchend', function()
{
var self = $(this);
self.removeClass(self.data('tappable-role'));
}).bind('click', function()
{
var self = $(this),
goTo = self.data('goto');
if(typeof goTo !== 'undefined')
{
window.location = goTo;
}
});
Run Code Online (Sandbox Code Playgroud)
当滚动时,它会在我几乎没有碰到它时将类分配给元素,我想防止这种情况发生,除非它被正确触摸(没有点击).虽然我尝试使用setTimeout,但是因为它延迟但效果不好但它稍后仍将分配该类.
这是我用setTimeout做的方式:
var currentTapped;
$('div, a, span').filter('[tappable][data-tappable-role]').bind('touchstart', function()
{
clearTimeout(currentTapped);
var self = $(this);
var currentTapped = setTimeout(function()
{
self.addClass(self.data('tappable-role'));
}, 60);
}).bind('touchend', function()
{
clearTimeout(currentTapped);
var self = $(this);
self.removeClass(self.data('tappable-role'));
}).bind('click', function()
{
clearTimeout(currentTapped);
var self = $(this),
goTo = …Run Code Online (Sandbox Code Playgroud)