[英]Android ACTION_UP and ACTION_MOVE doesn't work in live wallpaper AndEngine
我正在基於AndEngine動態壁紙擴展創建動態壁紙。 在函數onCreateScene()中,我將觸摸事件設置為場景。 這是代碼:
@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) {
mEngine.registerUpdateHandler(new FPSLogger());
parallaxBackground = new ParallaxBackground(0, 0, 0);
parallaxBackground.attachParallaxEntity(new ParallaxEntity(1.0f, mySprite));
mCurrentScene.setBackground(parallaxBackground);
mCurrentScene.setOnSceneTouchListener(this);
pOnCreateSceneCallback.onCreateSceneFinished(mCurrentScene);
}
之后,我創建onSceneTouchEvent()函數:
@Override
public boolean onSceneTouchEvent(Scene scene, TouchEvent event) {
switch(event.getAction()){
case TouchEvent.ACTION_DOWN:
Log.i("Logged TouchEvent DOWN", ""+event.getAction());
break;
case TouchEvent.ACTION_MOVE:
Log.i("Logged TouchEvent MOVE", ""+event.getAction());
break;
case TouchEvent.ACTION_UP:
Log.i("Logged TouchEvent UP", ""+event.getAction());
break;
}
return true;
}
這段代碼對嗎? 好。 我正在手機(Samsung Galaxy S III mini)上運行它,當我第一次觸摸屏幕時,日志中寫道:
AndEngine org.andengine.input.touch.TouchEvent$TouchEventPool<TouchEvent> was exhausted, with 0 item not yet recycled. Allocated 1 more.
Logged TouchEvent DOWN 0
當我第二次觸摸屏幕等時,日志中寫道:
Logged TouchEvent DOWN 0
Logged TouchEvent DOWN 0
Logged TouchEvent DOWN 0
Logged TouchEvent DOWN 0
.....
...僅檢測到ACTION_DOWN! ACTION_UP和ACTION_MOVE不起作用!
也許所有觸摸事件在AndEngine Live Wallpaper Extension中不可用? 誰知道? 如何解決這個問題呢?
我通過重新實現BaseWallpaperGLEngine類來解決該問題。
在您的LiveWallpaperService中插入以下代碼:
@Override
public Engine onCreateEngine() {
return new LiveWallpaperEngine(this);
}
public class LiveWallpaperEngine extends BaseWallpaperGLEngine {
public LiveWallpaperEngine(IRendererListener pRendererListener) {
super(pRendererListener);
}
@Override
public void onTouchEvent(MotionEvent event) {
mEngine.onTouch(null, MotionEvent.obtain(event));
}
}
@Override
protected void onTap(int pX, int pY) {
}
我希望這可以對遇到同樣問題的人有所幫助;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.