标签: touch-event

一个View的onTouchListener与onTouchEvent

视图之间有什么区别onTouchEvent:

public class MyCustomView extends View {
    // THIS :
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return super.onTouchEvent(event);
    }
}
Run Code Online (Sandbox Code Playgroud)

及其onTouchListener:

MyCustomView myView = (MyCustomView) findViewById(R.id.customview);
myView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public void onClick(View arg0) {
        // do something
    }
});
Run Code Online (Sandbox Code Playgroud)

要么

public class MyCustomView extends View {

    public MyCustomView(Context context, AttributeSet attrs) {
        // THIS :
        setOnTouchListener(new View.OnTouchListener() {
            @Override
            public void onClick(View arg0) {
                // do something
            }
        });
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) …
Run Code Online (Sandbox Code Playgroud)

android ontouchlistener touch-event

13
推荐指数
1
解决办法
2万
查看次数

如何扩展视图的触摸区域

我有一个垂直的LinearLayout.它应该作为快速跳跃杆.因此宽度非常小,高度几乎匹配整个屏幕高度.当我触摸它并在里面移动时,一切都很好.这意味着,我onTouchEvent()被召唤,我可以得到(并跟随)手指的位置.但由于条形图不是很宽,因此用户可以轻松地漂移到该视图之外.因此,即使在视图之外,也必须让用户继续运动.事实上同样的事情就像ListView一样.

我不知道为什么ListViewonTouchEvent()是,即使外面的时候叫ListView,但不是在我的情况LinearLayout.我把它追溯到了dispatchTouchEvent().这里的情况是相同的,即总是调用方法ListView(即使在外面),但在LinearLayout(在外面移动时)的情况下也不需要.

如果有人能给我一个提示,我会很高兴.非常感谢!

贝恩德

android extend touch touch-event

12
推荐指数
2
解决办法
1万
查看次数

获得元素下的元素

touchend事件绑定到touchstart触发的元素时,如何将元素放在手指离开的位置,此时元素位于绑定事件的元素之外.

javascript touch-event

12
推荐指数
1
解决办法
2853
查看次数

为什么我的系统覆盖所有触摸(不能与底层视图交互)

我有一个启动系统覆盖的服务.当叠加层可见时,我希望它是可触摸/检测触摸,但我想保持与它后面的屏幕的交互(后面我的意思是底层活动,例如叠加层旁边).

我的叠加层是128x128px的位图/ PNG.它被绘制,当我点击它时,我收到了触摸!记录,这很好.但是当我点击屏幕的任何其他部分时(除了叠加层)我也会接触到!记录并且没有与它下面的屏幕的交互是可能的.

以下是我的代码部分:

主要活动启动服务

buttonStart.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // start Service and return to Homescreen
                Intent i = new Intent(MainActivity.this, MyService.class);
                startService(i);                

                Intent newActivity = new Intent(Intent.ACTION_MAIN); 
                newActivity.addCategory(Intent.CATEGORY_HOME);
                newActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(newActivity);
            }
        });
Run Code Online (Sandbox Code Playgroud)

服务/显示覆盖

@Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        myOverlay = new Overlay(MyService.this);

        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, 
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.LEFT | Gravity.TOP;

        wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        wm.addView(myOverlay, params);

        myOverlay.setAnimation(new Waiting(MyService.this, 0, 0)); …
Run Code Online (Sandbox Code Playgroud)

android overlay touch-event

12
推荐指数
2
解决办法
1万
查看次数

处理Recyclerview内部物品的触摸事件 - android

我正在使用自定义布局(文本视图和切换)和自定义适配器构建简单的回收站视图.

我的问题是我无法处理交换机的点击事件(这使其切换状态),我已经为RecyclerView它构建了一个触摸监听器,每次点击它都会触发Switch.

经过大量试验后,开关触摸监听器也会触发,但如果单击该开关,我想禁用recyclelerView的触摸事件.

这是我的布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="60.0dip"
android:layout_weight="1.0"
android:orientation="horizontal"
android:paddingLeft="16dp">

<TextView
    android:id="@+id/category_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="false"
    android:layout_centerVertical="true"
    android:layout_gravity="center_vertical"
    android:text="Category Name"
    android:textAppearance="?android:textAppearanceLarge" />

<android.support.v7.widget.SwitchCompat
    android:id="@+id/category_switch"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_gravity="center_vertical"
    android:checked="true"
    android:clickable="true"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:paddingRight="16dp" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的适配器代码:

public CategoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View row = layoutInflater.inflate(R.layout.single_row_category, parent, false);
    CategoryViewHolder holder = new CategoryViewHolder(row);

    return holder;
}

public void onBindViewHolder(CategoryViewHolder holder, final int position) {
    AlarmCategory thisCat = categories.get(position);

    holder.catName.setText(thisCat.getCategoryName());

    holder.catStatus.setChecked(thisCat.isOn());

    holder.catStatus.setOnTouchListener(new View.OnTouchListener() …
Run Code Online (Sandbox Code Playgroud)

android touch-event android-switch android-recyclerview

12
推荐指数
2
解决办法
3万
查看次数

onTouchEvent onClick onLongClick调用

在我们的应用程序中,我们处理按钮中的事件以记录数据.

所以最初当我使用setOnLongClickListener()setOnClickListener()使用相同的按钮时,它对我们来说很好.

这意味着它将基于Click和LongClick按钮调用此侦听器.现在,当我尝试使用setOnTouchListener()相同的按钮setOnLongClickListener(),setOnClickListener()然后只有OnTouch事件正在工作,休息onclick和onLongclick事件不起作用.

任何人都可以告诉我为什么会发生这种情况,如果可能的话,请举例说明

我使用的代码是..

Button btnAdd=new Button(this)

btnAdd.setOnLongClickListener(this);

btnAdd.setOnClickListener(this);

btnAdd.setOnTouchClickListener(this);

public void onClick(View v)
{
    //Statements;
}

public void onLongClick(View v)
{
    //Statements;
}

public boolean onTouch(View v, MotionEvent e) 
{
    switch (e.getAction())
    {
        case MotionEvent.ACTION_DOWN:
        {
            //store the X value when the user's finger was pressed down
            m_downXValue = e.getX();
            break;
        }   

        case MotionEvent.ACTION_UP:
        {
            //Get the X value when the user released his/her finger
            float currentX = …
Run Code Online (Sandbox Code Playgroud)

android touch-event onlongclicklistener

11
推荐指数
1
解决办法
3万
查看次数

如何在onTouchEvent()中检测单点触摸和多点触控

我使用以下代码来检测单指触摸和双指触摸.代码检测到双指触摸(何时count==2).

我也需要在单点触控上做一些动作.如果我用一根手指触摸屏幕,它就不会用于其他部分.我在这段代码中做错了什么?

@Override
public boolean onTouchEvent(MotionEvent event) {
    int action = event.getAction() & MotionEvent.ACTION_MASK;
    switch (action) {
        case MotionEvent.ACTION_POINTER_UP: {
            int count = event.getPointerCount();
            Log.v("count >>", count + "");
            if (count == 2) {
                // some action
            } else {
                Log.v("count not equal to 2", "not 2");
            }
            break;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

更新:

我在里面用了这个代码Activity.我需要检测单点触控,多点触控.

在我的活动中,我有两个图像,一个在左边,一个在右边.如果我点击图像,一些过程必须要做.如果我用两根手指,我需要重新调整图像大小scale-factor.

这是我用过的代码:

更新:

package com.pinch.detect;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import …
Run Code Online (Sandbox Code Playgroud)

android touch-event

11
推荐指数
2
解决办法
4万
查看次数

模拟touchstart和touchend事件?

我正在开发一个主要用于ipad的jquery组件.所以无论如何都要在桌面上模拟'touchstart和'touchend'事件,而不是让设备本身来检查事件.

javascript jquery touch touch-event

11
推荐指数
2
解决办法
2万
查看次数

Modernizr.touch在firefox浏览器上返回true

我写了一个代码的和平,以触摸和非触摸为基础的事件.它适用于所有其他浏览器和设备,但Firefox.默认FF返回true.

var thumbsEvent, isTouch = Modernizr.touch; // detect the touch
if(isTouch){
   thumbsEvent = 'click';//on touch surface, click
}
else {
   thumbsEvent = 'mouseover';//on non touch surface, mouseover
}
Run Code Online (Sandbox Code Playgroud)

有没有办法管理这个问题.

示例小提琴

javascript firefox touch-event modernizr

10
推荐指数
2
解决办法
7729
查看次数

Windows 8触摸事件C#,触笔压力和角度的全局挂钩

有一些C#库允许通过安装全局挂钩来监听低级Windows调用来捕获鼠标和键盘事件,但是它们都不允许捕获Windows 8 Stylus压力.如果有人可以告诉我Touch事件ID是什么以及允许通过ID监听所有低级窗口事件的应用程序,例如WM_KEYUP,特别是那些与Touch事件相关的事件,我将不胜感激.

我能够通过听鼠标和按钮事件来检测手写笔坐标,但无法获得有关压力的信息.有任何想法吗?

总结: - 是否有一个C#库允许以全局方式(不依赖于单个应用程序)拦截Touch相关事件,特别是触控笔? - 如果没有,是否有人知道Touch相关事件的硬件ID和事件ID以及如何解码他们的数据?(我正在寻找压力) - 有人可以推荐我一个应用程序来收听和过滤HID和事件名称的低级别窗口事件吗?

提前致谢.

c# hook touch touch-event windows-8

10
推荐指数
1
解决办法
891
查看次数