【发布时间】:2011-10-03 06:10:18
【问题描述】:
我想为 Android 动态壁纸实现双击事件。 可悲的是,我找不到任何具体的代码来做到这一点。
目前我找到了一个使用引擎类的 onTouchEvent 方法的解决方法:
public void onTouchEvent(MotionEvent event) {
long time = android.os.SystemClock.currentThreadTimeMillis();
if(((time - mLastTouchTime) < 500) && ((time - mLastTouchTime) > 100))
{
if(!mIsPlayed && mSound)
{
mIsPlayed = true;
int sound = R.raw.hell;
if(mTheme.equals("rose"))
sound = R.raw.rose;
if(mTheme.equals("greed"))
sound = R.raw.greed;
MediaPlayer mp = MediaPlayer.create(getBaseContext(), sound);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.release();
mIsPlayed = false;
}
});
}
}
mLastTouchTime = time;
super.onTouchEvent(event);
}
嗯,这不是一个优雅的解决方案。我知道有些壁纸实现了双击。但我不知道如何自己做。
所以在正确的方向上“点击”会很好。如有必要,我将接受“双击”。 :D
您好, 罗伯特
【问题讨论】:
-
供您参考:android 标准键盘处理双击的方式与您完全相同。因此,我认为没有更好的解决方案来做到这一点;)
-
感谢您提供的信息。是否有任何示例代码可以让我找到正确的时间间隔值?
-
我认为由您来选择 :) 我记得 android 键盘双击延迟设置为 800 毫秒。 Android源已关闭,我没有验证这一点。