我们正在 .NET 中构建一个 Windows 应用程序,其要求之一是触摸屏显示器。除此之外,它是一个普通的基于 Windows 窗体的应用程序。但是除了让 UI 项目变得更大以供触摸之外,作为开发人员,我找不到任何我需要为需求做的事情,因为触摸屏基本上是鼠标操作。我错过了什么吗?
我试图使 ImageView 成为一个可以用手指绘制的表面。
我遵循了Android 2D Graphics Example,这导致整个屏幕可绘制(有一些问题,在问题8287949中讨论,但与我想要做的事情有些脱节。)
我正在与:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceStatA);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
drawView = new DrawView(this);
drawView.requestFocus();
setContentView(R.layout.activity_main);
}
Run Code Online (Sandbox Code Playgroud)
我想我需要更改drawView = new DrawView(this)为引用我在其中定义的资源上下文的内容activity_main.xml:
ImageView
android:id="@+id/canvasview"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/btnRed"
android:background="@drawable/kitty"
Run Code Online (Sandbox Code Playgroud)
但是,我要么不知道要在 API 参考中查找什么,要么没有找到它。
DrawView 的类在Android 2D Graphics Example中有文档,所以这里不再重复。
我一直在通过 AppInventor 工作,并尝试使用真正的 Android SDK 复制我在 Eclipse 中学到的东西,但我对教程 #1 感到困惑,对于新手问题感到抱歉!
我在遗留代码中有一些菜单结构如下:
<div id="show-hide-facets-button">iOS/Touch Browser Popdown Test
<div id="show-hide-facets-dropdown">
<ul>
<li class="show-hide-facets-row" id="item1">Item One</li>
<li class="show-hide-facets-row" id="item2">Item Two</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
弹出窗口隐藏,直到悬停:
#show-hide-facets-button {
}
#show-hide-facets-dropdown {
display: none;
}
#show-hide-facets-button:hover #show-hide-facets-dropdown {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
一个jsfiddle在http://jsfiddle.net/brycenesbitt/y3kb7/
请注意,没有锚点或其他可点击元素.在这种情况下,在顶层引入可点击元素的简洁方法是什么,因此鼠标浏览器用户可以继续悬停,但触摸浏览器用户可以通过点击访问菜单项?菜单项全部用jquery激活,触摸浏览器在那里工作正常.
我正在使用Xift,使用swift,我希望能够用手指触摸球,将其拖到屏幕上,然后当我拿起手指时,它应该保持它在拖动.我已经尝试在阵列中记录触摸的最后5个位置,然后根据球的当前位置和5帧前的位置之间的位置差来计算速度,但它经常以奇数角度和速度射出.有一个更好的方法吗?提前感谢任何建议.
前段时间我遇到了一个问题,当我的 ExtJS 5 应用程序嵌入到 IFrame 中时,触摸设备上的滚动不再起作用(请参阅此线程)。
我已经通过覆盖 Ext 框架中的一些内容解决了这个问题(请参阅解决方案)。
解决方案的一个步骤是将touchmove事件分派给文档本身(框架阻止默认处理此事件):
// ...
touchmove: function(e) {
window.document.dispatchEvent(e.event);
}
// ...
Run Code Online (Sandbox Code Playgroud)
尽管这个解决方案基本上有效,但它有一个缺陷:调度事件会InvalidStateError在每个touchmove事件上抛出一个未处理的事件,这显然很常见:
如果我只是在dispatchEvent语句周围放置一个 try/catch ,则在触摸设备上的 IFrame 内滚动不再起作用,就好像根本没有调用它一样。
如何在不再次中断滚动的情况下摆脱错误?
可以在此处测试滚动有效但发生许多未处理错误的 Testapp 。
我正在使用 PDFKIT 在 pdf 上画一条线。我覆盖触摸开始,移动等如下记录我在pdfView的documentView上的触摸如下:
override func touchesMoved(_ touches: Set<UITouch>,
with event: UIEvent?) {
// 6
swiped = true
if let touch = touches.first {
let currentPoint = touch.location(in: pdfView.documentView)
drawLineFrom(fromPoint: lastPoint, toPoint: currentPoint)
addAnnotation(fromPoint: lastPoint, toPoint: currentPoint)
// 7
lastPoint = currentPoint
}
}
Run Code Online (Sandbox Code Playgroud)
但是,正如您从下面的图片中看到的(黑线是我触摸屏幕的位置,红线是绘制注释的位置)。触摸坐标系是屏幕左上角的 (0,0),而 pdf 是从屏幕左下角 (0,0) 注释的。
我的添加注解功能如下:
func addAnnotation(fromPoint: CGPoint, toPoint: CGPoint) {
let page = pdfView.document?.page(at: 0)
let bounds = CGRect(x: 0, y: 0, width: 600, height: 600)
let line = PDFAnnotation(bounds: bounds, forType: …Run Code Online (Sandbox Code Playgroud) 我要在触摸屏上长按几秒钟后触发一个事件。我正在尝试通过以下代码实现此目标。问题在于,以某种方式经过的时间是随机的。
private float timePressed = 0.0f;
private float timeLastPress = 0.0f;
public float timeDelayThreshold = 2.0f;
void Update() {
checkForLongPress(timeDelayThreshold);
}
void checkForLongPress(float tim) {
for (int i = 0; i < Input.touchCount; i++)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
// If the user puts her finger on screen...
Debug.Log("Touch start");
timePressed = Time.time - timeLastPress;
}
if (Input.GetTouch(0).phase == TouchPhase.Ended)
{
// If the user raises her finger from screen
timeLastPress = Time.time;
Debug.Log("Releasing Touch");
Debug.Log("Time passed --> " …Run Code Online (Sandbox Code Playgroud) 我有个问题.我有一个UISCrollView,当用户触摸scrollView并发送到其他ScrollView o TableView这些scrollMove时,我需要获取该事件.
我如何将ScrollView中的移动捕获发送到其他ScrollView或TableView以进行这些移动.
对于简单的触摸,我使用touchesBegan,touchesMoved和touchesEnded,但touchesMove在UIScrollView中不起作用,并且无法将这些移动发送到其他ScrollView或TableView.
我举了一个例子.我需要将secondView scrollView冲突区域中的scroll事件发送到tableView,以便在tableView中进行make scroll.
First View
-----------------------------
- - -
- - -
- T - -
- A - -
- B - -
- L - -
- E - -
- V - -
- I - -
- E - -
- W - -
- - -
- - -
-----------------------------
Second View --> ##### is the ScrollView area on tableView FirstView
-----------------------------
- -###### -
- -###### -
- -###### …Run Code Online (Sandbox Code Playgroud) 今天,我还有一个关于 Xamarin 的问题。在 Xamarin 文档中有一些关于Touch Tracking,我想要的是使用SkiaSharp命名空间作为用户输入进行一些绘图。因此,用户使用他的手指在 aBoxView或类似的东西上画一些东西。
问题:很难找到命名空间,xamarin 文档中没有任何痕迹。只是名字是“TouchTracking”,我也需要“TouchEffects”。
我用谷歌搜索了一下,我得到的只是一些 0.1.0 beta 的东西,其中 TouchEffects 甚至不在同一个命名空间中,但它们在提供的代码示例中,这并不重要,但我发现的那个不适合跨平台,这真的让我很困扰,因为如果可能的话,我有希望通过跨平台完成所有事情。
那么有没有跨平台的触控绘图解决方案呢?
我正在使用Sencha touch构建一个小型演示应用程序:我遇到了列表显示的问题,然后是itemtap甚至触发.我在之前的应用程序中使用了这个但是无法找出为什么它没有在我当前的应用程序中触发在视图上,在控制器中添加了itemtap方法作为侦听器,但它们都没有触发.关于我失踪的任何想法?
在此先感谢您的帮助.PS
Main.js
Ext.define('KapselApp.view.Main', {
extend: 'Ext.navigation.View',
xtype: 'mainview',
requires: [
'KapselApp.view.ExpApproval',
'KapselApp.view.ExpApproval.Details',
'KapselApp.view.ExpApproval.Confirm'
],
config: {
autoDestroy: false,
navigationBar: {
ui: 'sencha',
items: [
{
xtype: 'button',
id: 'editButton',
text: 'Edit',
align: 'right',
hidden: true,
hideAnimation: Ext.os.is.Android ? false : {
type: 'fadeOut',
duration: 200
},
showAnimation: Ext.os.is.Android ? false : {
type: 'fadeIn',
duration: 200
}
},
{
xtype: 'button',
id: 'saveButton',
text: 'Save',
ui: 'sencha',
align: 'right',
hidden: true,
hideAnimation: Ext.os.is.Android ? false : {
type: …Run Code Online (Sandbox Code Playgroud) touch ×10
android ×2
extjs ×2
swift ×2
amazon-silk ×1
annotations ×1
c# ×1
drawing ×1
events ×1
extjs5 ×1
iframe ×1
ios ×1
ipad ×1
iphone ×1
java ×1
javascript ×1
jquery ×1
list ×1
pdfkit ×1
sprite-kit ×1
uiscrollview ×1
winforms ×1
xamarin ×1