精华内容
下载资源
问答
  • 资料含有与PLC结合做人机界面资料,基本资料参照自己使用的触摸屏说明书,这里讲述的是特殊功能,让你做得人机界面更加完美高档。
  • 主要介绍了vue实现移动端触屏拖拽功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 1:本程序在rockchip rk3026 android4的平台...3:本例使用的触摸屏分辨率为800x480,其它分辨率可修改kernel\drivers\input\touchscreen\touchit213.c里面的定义 #define REPORT_MAX_X 800 #define REPORT_MAX_Y 480
  • 3/24触屏键盘的功能实现 键盘的显示 按钮结构体的建立 是采用建立一个结构体,里面包含了该按键的x,y,坐标,长度high,宽度width,以及改按键完成的时间handle,还有按钮的名字title; typedef struct Event { int...

    3/24触屏键盘的功能实现

    键盘的显示

    按钮结构体的建立
    是采用建立一个结构体,里面包含了该按键的x,y,坐标,长度high,宽度width,以及改按键完成的时间handle,还有按钮的名字title;
    typedef struct Event
    {
    int xpos;
    int ypos;
    int wideth;
    int height;
    char *title;
    int flag;
    void (*handle)(struct Event);
    }EVENT;
    给每一个按键附上值
    在这里插入图片描述
    运用函数打印所有按键
    在这里插入图片描述
    轮询检测是否有输入
    如果检测到输入,判断是否在按键上,如果在按键上,找出按键的位置,执行按键的handle,在每次检测确定是在按键上时执行一次打印操作将输入按键的数值打印出来,并且重新覆盖。
    英汉的切换
    在change按钮按过之后,之后的判断将跳转为另外一个 字母的结构体,在这里插入图片描述
    打印输出的函数
    是采用另外一个定义的全局结构体数组。
    在这里插入图片描述
    每次多打印的数就会存入其中,每次按back就会删除掉一个。

    遇到问题

    在执行输入字母的时候显示输出函数在这里插入图片描述
    可以正常输入字母,切换到数字输入之后就会无法显示输出的英文,但是如果再次英文输入又可以看到所有的数字与字母,很奇怪,进行了调试之后在打印的时候都进入了同一个函数,但是在数字输入的时候打印出来的英文值就是为空,但是输入英文打印出来的就是有数值。

    心得体会

    要多和同学们交流一下心得

    展开全文
  • 主要介绍了用vue 实现手机触屏滑动的功能,文中通过示例代码给大家介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  •   当我们将项目移植到ios和android设备上,pc端的鼠标左键操作会自动适配为手机屏幕上的触屏(单点)操作,但也只是实现了鼠标的单点,比如手指滑动和多点触摸都无法检测。 using System.Collections; using System...

    触屏操作

      当我们将项目移植到ios和android设备上,pc端的鼠标左键操作会自动适配为手机屏幕上的触屏(单点)操作,但也只是实现了鼠标的单点,比如手指滑动和多点触摸都无法检测。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class TouchMgr : MonoBehaviour
    {
        //手指第一次触摸点的位置
        Vector2 m_scenePos = new Vector2();
    	//摄像机
        public Transform cameraTarget;
        void Start()
        {
            //允许多点触摸
            Input.multiTouchEnabled = true;
        }
    
       
        void Update()
        {
            //DesktopInput();
            //MobileInput();
        }
    
        //移动端控制摄像机旋转
        private void MobileInput()
        {
            if (Input.touchCount == 0)
                return;
    
            if (Input.touchCount==1)
            {
                if (Input.touches[0].phase== TouchPhase.Began)
                {
                    m_scenePos = Input.touches[0].position;
                }
                else if (Input.touches[0].phase==TouchPhase.Moved)
                {
                    //旋转摄像机
                    cameraTarget.Rotate(new Vector3(-Input.touches[0].deltaPosition.y,Input.touches[0].deltaPosition.x,0), Space.Self);
                }
    
                if (Input.touches[0].phase==TouchPhase.Ended&&Input.touches[0].phase!= TouchPhase.Canceled)
                {
                    Vector2 pos = Input.touches[0].position;
    
                    //判断手指移动
                    //水平移动
                    if (Mathf.Abs(m_scenePos.x-pos.x)>Mathf.Abs(m_scenePos.y-pos.y))
                    {
                        if (m_scenePos.x>pos.x)
                        {
                            Debug.Log("手指向左滑");
                            //TODO:...
                        }
                        else
                        {
                            Debug.Log("手指右滑");
                            //TODO:...
                        }
                    }
                    else
                    {
                        if (m_scenePos.y>pos.y)
                        {
                            Debug.Log("手指下滑");
                            //TODO:...
                        }
                        else
                        {
                            Debug.Log("手指上滑");
                            //TODO:...
                        }
                    }
                }
            }//多指逻辑
            else if (Input.touchCount>1)
            {
                //记录两个手指的位置
                Vector2 finger1 = new Vector2();
                Vector2 finger2 = new Vector2();
    
                //记录两个手指的移动
                Vector2 mov1 = new Vector2();
                Vector2 mov2 = new Vector2();
    
                for (int i = 0; i < 2; i++)
                {
                    Touch touch = Input.touches[i];
    
                    if (touch.phase == TouchPhase.Ended)
                        break;
    
                    if (touch.phase== TouchPhase.Moved)
                    {
                        float mov = 0;
                        if (i==0)
                        {
                            finger1 = touch.position;
                            mov1 = touch.deltaPosition;
                        }
                        else
                        {
                            finger2 = touch.position;
                            mov2 = touch.deltaPosition;
    
                            if (finger1.x>finger2.x)
                            {
                                mov = mov1.x;
                            }
                            else
                            {
                                mov = mov2.x;
                            }
    
                            if (finger1.y>finger2.y)
                            {
                                mov += mov1.y;
                            }
                            else
                            {
                                mov += mov2.y;
                            }
                            cameraTarget.transform.Translate(0, 0, mov * 0.1f);
                        }
                    }
                   
                }
            }
        }
    
        //Window端控制摄像机旋转
        void DesktopInput()
        {
            float mx = Input.GetAxis("Mouse X");
            float my = Input.GetAxis("Mouse Y");
    
            if (mx != 0 || my != 0)
            {
                if (Input.GetMouseButton(0))
                {
                    cameraTarget.Rotate(new Vector3(-my*10,mx*10,0), Space.Self);
                }
            }
        }
    }
    
    
    展开全文
  • 主要为大家详细介绍了基于javascript实现移动端上的触屏拖拽功能,感兴趣的小伙伴们可以参考一下
  • 触摸屏实现距离传感器的功能

    千次阅读 2013-05-23 20:53:11
    需求:某些客户为了节约成本吧,将距离传感器拿掉,相应的功能用TP触摸屏来模拟实现。流程图如下   移植原理:去掉手机上的感光Sensor,用TP来模拟实现感光sensor在通话时亮屏和灭屏的功能。 当然了TP本身是需要...

    需求:某些客户为了节约成本吧,将距离传感器拿掉,相应的功能用TP触摸屏来模拟实现。流程图如下
     

    移植原理:去掉手机上的感光Sensor,用TP来模拟实现感光sensor在通话时亮屏和灭屏的功能。
    当然了TP本身是需要支持相应的功能的。可以联系模组厂进行调试,导入firmware,然后才在代码中进行相应的修改。
    1. 首先在目录/sys/bus/i2c/devices下添加相应的I2C设备,在ProximitySensor.cpp中添加:
    //the below characters is the origin codes,modified to make the JNI work corretly
    #define ENALBE_PS_SENSOR  "/sys/bus/i2c/devices/i2c-2/2-0038/enable_ps_sensor"
     
    2. 在sensor.cpp中取代感光sensor
    修改原则是用模拟距离传感器的代码替换原先感光sensor的代码。
    在sensor列表中添加支持模拟距离传感器的模块代码,以敦太的ft5306为例。
    static const struct sensor_t sSensorList[] ={
    。。。 
     
    。。。};
    接下来是声明,替换感光sensor的相关部分。
     
     
     
    3. 加入编译选项,在Android.mk.3rdparty
         sensors.cpp  \
    4. 在tp驱动里加入代码
    先在代码里声明个宏开关吧
    #define TP_PROXIMITY_SENSOR
    在结构体中添加必要的成员变量
    struct pixcir_i2c_ts_data {
     struct i2c_client *client;
     struct input_dev *input;
     struct ts_event  event;
     //const struct pixcir_ts_platform_data *chip;
     bool exiting;
    #ifdef TP_PROXIMITY_SENSOR
     //struct mutex update_lock;
     //struct delayed_work dwork; /* for PS interrupt */
     struct input_dev *input_dev_ps;

     unsigned int enable;
     unsigned int control;

     /* control flag from HAL */
     unsigned int enable_ps_sensor;

     unsigned int ps_detection;  /* 0 = near-to-far; 1 = far-to-near */
     //unsigned int ps_data;   /* to store PS data */
    #endif
    };
    创建sysfs接口,用于hal层调用
    static DEVICE_ATTR(enable_ps_sensor, S_IWUGO | S_IRUGO,
           ft5306_show_enable_ps_sensor, ft5306_store_enable_ps_sensor);

    static struct attribute *ft5306_attributes[] = {
     &dev_attr_enable_ps_sensor.attr,
     NULL
    };
    当你想要实现的接口名字是enable_ps_sensor的时候,需要实现结构体struct attribute *dev_attrs[]
    其中成员变量的名字必须是&dev_attr_enable_ps_sensor.attr,然后再封装
    static const struct attribute_group ft5306_attr_group = {
     .attrs = ft5306_attributes,
    };
    最后就可以创建接口了,这个是在probe里面创建的哦
    #ifdef TP_PROXIMITY_SENSOR
     error = sysfs_create_group(&client->dev.kobj, &ft5306_attr_group); 
     if (error)
      input_unregister_device(ps_input);
    #endif
    这里只是建立了android到kernel的桥梁,真正实现对硬件操作的还是show和store两个函数。
    #ifdef TP_PROXIMITY_SENSOR
    static ssize_t ft5306_show_enable_ps_sensor(struct device *dev,
        struct device_attribute *attr, char *buf)
    {
     struct i2c_client *client = to_i2c_client(dev);
     struct pixcir_i2c_ts_data *data = i2c_get_clientdata(client);

     return sprintf(buf, "%d\n", data->enable_ps_sensor);
    }

    static ssize_t ft5306_store_enable_ps_sensor(struct device *dev,
        struct device_attribute *attr, const char *buf, size_t count)
    {
     struct i2c_client *client = to_i2c_client(dev);
     struct pixcir_i2c_ts_data *data = i2c_get_clientdata(client);
     
     unsigned long val = simple_strtoul(buf, NULL, 10);
      unsigned long flags;
     int err;
     char data_cmd[2]={0, 0};

     
     printk("%s: enable ps senosr ( %ld)\n", __func__, val);
     
     if ((val != 0) && (val != 1)) {
      printk("%s:store unvalid value=%ld\n", __func__, val);
      return count;
     }
     
     if(val == 1) {
      rgt_ps_mode = true;
      //turn on p sensor
      if (data->enable_ps_sensor==0) {
       data->enable_ps_sensor= 1;
       err = pixcir_i2c_write_data(0xB0, 0x01);

       if(err==0)
        printk("tp_ps: i2c write sucess, err:%d\n", err); 
       //}
       else
        printk("tp_ps: i2c write fail, err:%d\n", err);
      }
     }
     else {
      //turn off p sensor - kk 25 Apr 2011 we can't turn off the entire sensor, the light sensor may be needed by HAL
      rgt_ps_mode=false;
      data->enable_ps_sensor = 0;
      err=pixcir_i2c_txdata(0xB0, 0x00);//out ps mode
      if(err==0)
      //{
       printk("tp_ps: i2c write sucess\n");
      //}
      else
       printk("tp_ps: i2c write fail\n");
     } 
     return count;
    }
    接下来在probe里各种添加了

    static int __devinit pixcir_i2c_ts_probe(struct i2c_client *client,
          const struct i2c_device_id *id)
    {
     //const struct pixcir_ts_platform_data *pdata = client->dev.platform_data;
     struct pixcir_i2c_ts_data *tsdata;
     struct input_dev *input;
     struct input_dev *ps_input;
     struct device *dev;
     struct i2c_dev *i2c_dev;
     int i, error;
     
     this_client = client;
     client->irq = pixcir_ts_config_pins(); //reset pin set to 0 or 1 and platform init
     
     for(i=0; i<MAX_FINGER_NUM*2; i++) {
      point_slot[i].active = 0;
     }

     tsdata = kzalloc(sizeof(*tsdata), GFP_KERNEL);
     input = input_allocate_device();
    #ifdef TP_PROXIMITY_SENSOR
     ps_input = input_allocate_device();
    #endif
     if (!tsdata || !input || !ps_input) {
      dev_err(&client->dev, "Failed to allocate driver data!\n");
      error = -ENOMEM;
      goto err_free_mem;
     }
    #ifdef TOUCH_VIRTUAL_KEYS
     pixcir_ts_virtual_keys_init();
    #endif

     tsdata->client = client;
     tsdata->input = input;
    #ifdef TP_PROXIMITY_SENSOR
     tsdata->input_dev_ps = ps_input;
    #endif
     //tsdata->chip = pdata;
     global_irq = client->irq;

     input->name = client->name;
     input->id.bustype = BUS_I2C;
     input->dev.parent = &client->dev;
    #ifdef TP_PROXIMITY_SENSOR
     ps_input->name = "FTPS";
     ps_input->id.bustype = BUS_I2C;
    #endif

     __set_bit(EV_KEY, input->evbit);
     __set_bit(EV_ABS, input->evbit);
     __set_bit(EV_SYN, input->evbit);
     __set_bit(BTN_TOUCH, input->keybit);
    #ifdef TP_PROXIMITY_SENSOR
     __set_bit(EV_ABS, ps_input->evbit);
    #endif
     __set_bit(ABS_MT_TOUCH_MAJOR, input->absbit);
     __set_bit(ABS_MT_POSITION_X, input->absbit);
     __set_bit(ABS_MT_POSITION_Y, input->absbit);
     __set_bit(ABS_MT_WIDTH_MAJOR, input->absbit);

     __set_bit(KEY_MENU,  input->keybit);
     __set_bit(KEY_BACK,  input->keybit);
     //__set_bit(KEY_HOME,  input->keybit);
     //__set_bit(KEY_SEARCH,  input->keybit);
     
     input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
     input_set_abs_params(input, ABS_MT_POSITION_X, 0, X_MAX, 0, 0);
     input_set_abs_params(input, ABS_MT_POSITION_Y, 0, Y_MAX, 0, 0);
     input_set_abs_params(input, ABS_MT_WIDTH_MAJOR, 0, 200, 0, 0);
    #ifdef TP_PROXIMITY_SENSOR
     input_set_abs_params(ps_input, ABS_DISTANCE, 0, 1, 0, 0);
    #endif


     input_set_drvdata(input, tsdata);

     error = request_threaded_irq(client->irq, NULL, pixcir_ts_isr,
             IRQF_TRIGGER_FALLING,
             client->name, tsdata);
     if (error) {
      dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");
      goto err_free_mem;
     }
     disable_irq_nosync(client->irq);

     error = input_register_device(input);
     if (error)
      goto err_free_irq;
     
    #ifdef TP_PROXIMITY_SENSOR
     error = input_register_device(ps_input);
     if (error)
      goto err_free_irq;
    #endif
     i2c_set_clientdata(client, tsdata);
     device_init_wakeup(&client->dev, 1);

     /*********************************Bee-0928-TOP****************************************/
     i2c_dev = get_free_i2c_dev(client->adapter);
     if (IS_ERR(i2c_dev)) {
      error = PTR_ERR(i2c_dev);
      return error;
     }

    //hong 找到了,上述说的就是在这里的。
    #ifdef TP_PROXIMITY_SENSOR
     error = sysfs_create_group(&client->dev.kobj, &ft5306_attr_group); 
     if (error)
      input_unregister_device(ps_input);
    #endif

     dev = device_create(i2c_dev_class, &client->adapter->dev, MKDEV(I2C_MAJOR,
       client->adapter->nr), NULL, "ft5206_ts%d", 0);
     if (IS_ERR(dev)) {
      error = PTR_ERR(dev);
      return error;
     }
     /*********************************Bee-0928-BOTTOM****************************************/

     pixcir_early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1;
     pixcir_early_suspend.suspend = pixcir_ts_suspend;
     pixcir_early_suspend.resume = pixcir_ts_resume;
     register_early_suspend(&pixcir_early_suspend);

     if(pixcir_config_intmode()<0) {
    #ifdef PIXCIR_DEBUG
      printk("%s: I2C error\n",__func__);
    #endif
      goto err_free_irq;
     }
     pixcir_create_sysfs(client);

    #ifdef PIXCIR_DEBUG
     dev_err(&tsdata->client->dev, "insmod successfully!\n");
    #endif 
     enable_irq(client->irq);
     msleep(100);
     pixcir_i2c_write_data(0x80, 0x10);

    #if 0//def TP_PROXIMITY_SENSOR
     //struct ft5306_ps_data ps_data;
     int err;
     ps_data->enable = 0;
     ps_data->detection= 0;
     ps_data->enable_ps_sensor = 0;
     if(err = hwmsen_attach(ID_PROXIMITY, &tp_ps))
     {
      printk("tp_ps:attach fail = %d\n", err);
      //goto exit_create_attr_failed;
     }
     data->enable_ps_sensor = 0;
    #endif
     return 0;

    err_free_irq:
     free_irq(client->irq, tsdata);
     sprd_free_gpio_irq(pixcir_irq);
    err_free_mem:
     input_free_device(input);
     kfree(tsdata);
     return error;
    }


    中断read数据,打电话时模拟距离控制屏的休眠和唤醒
    static irqreturn_t pixcir_ts_isr(int irq, void *dev_id)
    {
     struct pixcir_i2c_ts_data *tsdata = dev_id;
     int ret;
     
     disable_irq_nosync(irq);

     ret = ft5x0x_read_data(tsdata); 
     if (ret == 0) { 
      ft5x0x_report_value(tsdata);
     }

     enable_irq(irq);
     
     return IRQ_HANDLED;
    }

    static int ft5x0x_read_data(struct pixcir_i2c_ts_data *data)
    {
    // struct pixcir_i2c_ts_data *data = i2c_get_clientdata(this_client);
     struct ts_event *event = &data->event;
    // u8 buf[14] = {0};
     u8 buf[32] = {0};
     int ret = -1;
     int touch_point = 0;
    //add detect function by liuhui 20120530. start
    #ifdef TP_PROXIMITY_SENSOR
     int err;
     u8 buf_ps[2] = {0};

     if(rgt_ps_mode == true)
     {
      err=pixcir_i2c_rxdata(&buf_ps, 2);
      if(err==1)
       printk("tp_ps: i2c read sucess\n");
      else
       printk("tp_ps: i2c read fail, err = %d\n", err);
      printk("tp_ps:ps data:%d\n", buf_ps[1]);
      if(buf_ps[1]==0xc0)//close
      {
       data->ps_detection = 1;
       input_report_abs(data->input_dev_ps, ABS_DISTANCE, 1);
       input_sync(data->input_dev_ps);
       return 0;
      }
      else if(buf_ps[1]==0xe0)//far away
      {
       data->ps_detection = 0;
       input_report_abs(data->input_dev_ps, ABS_DISTANCE, 0);
       input_sync(data->input_dev_ps);
       //return 0;
      }
     }
    #endif
    。。。

    suspend休眠
    static void pixcir_ts_suspend(struct early_suspend *handler)
    {
     if(rgt_ps_mode==true)
      return -1;
     disable_irq_nosync(global_irq);
        pixcir_ts_pwroff();
    }

    resume唤醒
    static void pixcir_ts_resume(struct early_suspend *handler)

     int ret = 0; 
     unsigned char reg_val[8] = {0};
     struct i2c_client *client = this_client;
     if(rgt_ps_mode==true)
      return -1;
     pixcir_ts_pwron();
     pixcir_reset();
     
     msleep(50);
     pixcir_i2c_write_data(0x80, 0x12);
     enable_irq(global_irq);

    到此,整个移植也算结束了。
    5.关于bug
        这个在调试的过程中还得和模组厂的FAE们,一起掌控TP的灵敏度,这个要多次反复的实验才行。
        做了很多专项测试,依照上面的代码来看,当打电话的时候离开人脸,有时会出现唤不醒屏幕的问题,手动唤醒后,GOD,TP居然失效了,
    这是难以接受的。这就是模拟的缺陷了,经过很多调试才避免了这种TP失效的发生,当然了偶尔还是出现自动唤不醒的情况。具体的优化,在
    下一章中会详细讲到,ps 解决这个bug,我搞了两天。。。
        事情到此结束了?有兴趣的话,可以考虑下为什么在pixcir_ts_resume中加入rgt_ps_mode==true的判断,当时偶也是很迷惑的。
        最终,还是有别的隐性bug的,但目前就优化到这里。可能在你看来还是有很多问题,不妨给点建议。

    ps:第一次在csdn上些东西,排版好难整啊。。

     

     


     

    展开全文
  • js实现移动端触屏实现拖拽功能

    千次阅读 2018-07-30 18:24:02
    转载: ... 1.html ...<div id="div1"></div> ...//手指触摸开始,记录div的初始位置 ...//触摸中的,位置记录 ...//触摸结束时的处理 ... 对于触屏手机端用手指事件,对于PC端用鼠标事件,其实原理都一样。

    转载:https://www.jianshu.com/p/750ca057bb3d

    1.html

    <div id="div1"></div>

    2.css

    * {
    	margin: 0;
    	padding: 0;
    }
    
    html,
    body {
    	width: 100%;
    	height: 100%;
    }
    
    #div1 {
    	width: 50px;
    	height: 50px;
    	background: cyan;
    	position: absolute;
    }

    3.js

    var div1 = document.querySelector('#div1');
    //限制最大宽高,不让滑块出去
    var maxW = document.body.clientWidth - div1.offsetWidth;
    var maxH = document.body.clientHeight - div1.offsetHeight;
    
    //手指触摸开始,记录div的初始位置
    div1.addEventListener('touchstart', function(e) {
    	var ev = e || window.event;
    	var touch = ev.targetTouches[0];
    	oL = touch.clientX - div1.offsetLeft;
    	oT = touch.clientY - div1.offsetTop;
    	document.addEventListener("touchmove", defaultEvent, false);
    });
    //触摸中的,位置记录
    div1.addEventListener('touchmove', function(e) {
    	var ev = e || window.event;
    	var touch = ev.targetTouches[0];
    	var oLeft = touch.clientX - oL;
    	var oTop = touch.clientY - oT;
    	if(oLeft < 0) {
    		oLeft = 0;
    	} else if(oLeft >= maxW) {
    		oLeft = maxW;
    	}
    	if(oTop < 0) {
    		oTop = 0;
    	} else if(oTop >= maxH) {
    		oTop = maxH;
    	}
    
    	div1.style.left = oLeft + 'px';
    	div1.style.top = oTop + 'px';
    
    });
    //触摸结束时的处理
    div1.addEventListener('touchend', function() {
    	document.removeEventListener("touchmove", defaultEvent);
    });
    
    //阻止默认事件
    function defaultEvent(e) {
    	e.preventDefault();
    }

    3.效果

    4.几点说明

          对于触屏手机端用手指事件,对于PC端用鼠标事件,其实原理都一样。

    展开全文
  • 行业分类-电子-一种用电容式触摸屏实现侧位按键功能的手机
  • Smart 700 IE V3 触摸屏的数据记录功能实现 在做数据记录之前,我们要知道,该触摸屏不带存储卡,但是,数据记录可存储到U盘上。 一、从项目里面找到“数据记录” 二、添加新的 “数据记录”,给各项内容选择合适的...
  • 现在办公室坐班的朋友大部分已经离不开电脑,小编也是一样。每天到岗后都是重复着签到、开机、工作,但你有没有想过让电脑在某一天的某个时候自动开机?不但实用,而且还能在同事之间“炫”一把,不错的提议。...
  • 触摸屏锁屏(Touch Lock)功能实现

    千次阅读 2010-01-17 22:32:00
    触摸屏锁屏(Touch Lock)功能实现 收藏 触摸屏锁屏(Touch Lock)功能实现--作者:赖玉平(Auly)aulyp@163.com
  • unity 实现简单的触屏功能

    千次阅读 2014-08-13 23:44:02
    今天实现了3个触屏功能记录下来帮助回忆,也希望帮助到其他的小伙伴。 在unity 中单点触摸用鼠标的方式就可以了例如 ,他在pc和安卓上是通用的,但是多点触摸是不行的。  unity 中的移动 旋转等功能可以通过...
  • 电信设备-实现移动终端触摸屏开关功能的方法及系统.zip
  • stm32f4实现s6d1121+xtp2046触摸屏功能

    千次阅读 2013-09-23 14:34:24
    经过折腾液晶成功后,接下来实现触摸屏功能! 原理什么的就不多说,工程也是别人的。直接针对这块屏,说下接线! 这份是s6d1121的引脚图,其中以D_开头的引脚是用来实现触摸功能的! 其中,D_BUSY在实体屏上标记...
  • JS实现移动端触屏拖拽功能

    千次阅读 2019-04-29 16:50:09
    //手指触摸开始,记录div的初始位置 div1.addEventListener('touchstart', function(e) { var ev = e || window.event; var touch = ev.targetTouches[0]; oL = touch.clientX - div1.offsetLeft; oT = touch....
  • 主要为大家详细介绍了javascript实现移动端触屏拖拽功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 触摸屏按压状态返回”与普通的“基本触控”的主要区别在于,它除了可以实现基本触控的功能(按键效果,页面切换)外,还可以判断触摸的状态。一次触摸操作一共包含3个状态:按下,持续按压,抬起。这三个阶段结合...
  • ARM裸板触摸屏上的一些功能实现,包括泡泡球的运动(可以相碰离开);电子书阅读(上下翻页);时钟界面;还有备用按钮;注释很多,阅读性很强,可供参考下载
  • 简单的说,有一块触摸屏,安装到电脑上,我们想在这块触摸屏上运行虚拟键盘软件,当键盘用,目前触摸屏驱动和虚拟键盘程序都是现成的,问题是怎么能让这个虚拟键盘程序运行或者说只显示在触摸屏上,可不可以把虚拟...
  • 触摸屏驱动——platform机制剖析 /*  *硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)  *软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统  *参考资料:《嵌入式Linux应用...
  • microPython中实现Modbus通信支持各类触摸屏功能码有0x01\0x02\0x03\0x04\0x05\0x06等功能
  • 实训时做的 一个嵌入式开发的小程序 是在ARM开发板上开发的 触摸屏驱动
  • 触摸屏是成熟的技术,基本、也是常用的是4/5线电阻触摸屏。很多标准屏支持多种尺寸,可以选择多种解码模拟解决方案。电阻触摸屏支持多种输入方法,比如手指、触摸笔、手套和指甲等等。电容触摸屏比较适合手指的输入...
  • 本文主要利用touch事件,实现了在触屏上的触摸滚动页面功能,类似手机浏览器上原生的触屏滚动事件。 目前在PC和移动端的浏览器环境中,在有原生的鼠标滚轮滚动和触屏滚动功能的情况下,这个功能的使用场景应该是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,259
精华内容 22,903
关键字:

触摸屏功能实现