【问题标题】:how to implement gesture to a button on android?如何在android上实现对按钮的手势?
【发布时间】:2012-10-11 02:43:39
【问题描述】:

我有一个按钮(button1)和两个声音(sound1,sound2),我想对这个按钮实现一个手势。如果单击 Button1,则声音为 sound1,但如果手势触摸 Button1,则声音为 sound2。为了处理声音,我使用了 SoundManager 类。处理触摸我使用多点触控类。

public class MyActivity extends MultiTouch {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.myactivity);

    SoundManager.getInstance();
    SoundManager.initSounds(this);
    SoundManager.loadSounds();

    Button Button1 = (Button)findViewById(R.id.button1);
    Button1.setOnTouchListener(this);
    Button1.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            SoundManager.playSound(1, 1);
        }
    });
     }

 public void onDestroy()
    {
        super.onDestroy();
        SoundManager.cleanup();
    }

}

非常感谢

【问题讨论】:

  • 您的代码看起来不错....您面临的问题是什么?
  • 问题是我想在button1上添加手势来调用sound2。如果我使用上面的代码,我只能通过点击调用 sound1。我想要,当我单击按钮 1 时,我希望声音是声音 1,但是当我使用手势触摸按钮 1 时,声音是声音 2。 --使用谷歌翻译--

标签: android gesture


【解决方案1】:

点击和触摸没有太大区别。 但是如果你想同时实现这两者,你就必须想办法让它发挥作用。

对于系统而言,很难决定将手指放在按钮上,是要“单击”还是“触摸”它。为了控制这一点,你可以得到时间,按钮被点击/触摸/无论如何......

例如: 如果您单击/触摸/开始计数的任何按钮,如果您停止单击/触摸/whateevring,则停止计数。之后很容易: if(time

请注意,最好有一个包含相同代码的 Click-Listener 和 TouchListener,然后使用计数内容来决定。

我已经实现了它,效果很好!

【讨论】:

  • 在 ouTouch 中,您可以处理所有其他事件滚动或单击双击。但 onClick 仅处理单击
【解决方案2】:

您可以例如使用 GestureListener (https://developer.android.com/reference/android/view/GestureDetector.SimpleOnGestureListener.html#5307216038506006379) 并为您的按钮处理不同的事件或手势类型(触摸、点击、滑动...)

【讨论】:

    【解决方案3】:

    动态创建按钮会导致问题。但是如果在你的 xml 文件中创建按钮然后设置

    【讨论】:

      猜你喜欢
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多