如何使用Android中的代码模拟手势

时间:2015-04-01 04:36:05

标签: android simulation gesture

我正在为我的应用程序(软键盘)开发用户指南教程,基本上在教程中我需要以编程方式模拟一组手势,包括"点击","刷卡&#34 ;,"长按和滑动"我没有关于如何实现这一点的基本想法,我已经通过互联网进行了搜索,但仍然没有得到任何有用的发现。

那么有没有人给我一些关于如何实现这一点的建议,如果可能的话,请给我一个简单的代码示例。非常感谢,请帮忙。

3 个答案:

答案 0 :(得分:1)

您不需要 来模拟教程的手势。只是假装手势已被执行。例如,假设您想教导用户长按按钮以触发某些操作。在这种情况下,您可以显示一个图形或动画,将用户指向按钮并指示长按。例如,您可以显示按下按钮的手指图像。然后,直接触发操作。您无需模拟手势,只需直接触发操作即可。

答案 1 :(得分:0)

如果您正在开发教程或浏览应用程序,我建议您使用一些屏幕投射软件,您不必以编程方式进行。

在设置>下有选项显示触摸(打开)开发人员选项>继续。它会在你触摸的地方给你反馈。

以下是一些可以帮助记录屏幕投射的工具

Droid@Screen

另一个有用的工具是:

AndroidScreenCast

其他方式将在 After Effect 后,重新编码您的截屏视频后添加After Effects中的手势

答案 2 :(得分:0)

对于滑动视图,您可以参考以下链接:http://developer.android.com/training/implementing-navigation/lateral.html。 对于按钮单击,只需调用onclicklistener()并将其id指向要使用的按钮。 长按,这里是代码:(省略数字)

  import android.app.Activity;
    02
    import android.os.Bundle;
    03
    import android.view.View;
    04
    import android.view.View.OnClickListener;
    05
    import android.view.View.OnLongClickListener;
    06
    import android.widget.TextView;
    07
    import android.widget.Toast;
    08

    09
    public class LongPress extends Activity {
    10

    11
     @Override
    12
     protected void onCreate(Bundle savedInstanceState) {
    13
      super.onCreate(savedInstanceState);
    14
      setContentView(R.layout.activity_long_press);
    15
      TextView txtView = (TextView) findViewById(R.id.txtView);
    16
      txtView.setOnLongClickListener(new OnLongClickListener() {
    17
       @Override
    18
       public boolean onLongClick(View v) {
    19
        // TODO Auto-generated method stub
    20
        Toast.makeText(getApplicationContext(),
    21
          "You have pressed it long :)", 2000).show();
    22
        return true;
    23
       }
    24
      });
    25
      txtView.setOnClickListener(new OnClickListener() {
    26
       @Override
    27
       public void onClick(View v) {
    28
        // TODO Auto-generated method stub
    29
        Toast.makeText(getApplicationContext(), "Not Long Enough :(",
    30
          1000).show();
    31
       }
    32
      });
    33
     }
    34

    35
    }