Android LiveWallpar双击可打开活动
我是android开发的新手。 我想在我的壁纸中实现一个双击事件,这样当我双击壁纸时,它就会打开应用程序 以下是我绘制墙纸图像的代码:Android LiveWallpar双击可打开活动,android,live-wallpaper,Android,Live Wallpaper,我是android开发的新手。 我想在我的壁纸中实现一个双击事件,这样当我双击壁纸时,它就会打开应用程序 以下是我绘制墙纸图像的代码: public class AbcService extends WallpaperService { public void onCreate() { super.onCreate(); } public void onDestroy() { super.onDestroy();
public class AbcService extends WallpaperService
{
public void onCreate()
{
super.onCreate();
}
public void onDestroy()
{
super.onDestroy();
}
public Engine onCreateEngine()
{
return new wallpaperEngine();
}
class wallpaperEngine extends Engine
{
public Bitmap image1;
wallpaperEngine()
{
image1 = BitmapFactory.decodeResource(getResources(), R.drawable.img_3);
}
public void onCreate(SurfaceHolder surfaceHolder)
{
super.onCreate(surfaceHolder);
}
public void onOffsetsChanged(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels)
{
drawFrame();
}
void drawFrame()
{
final SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
try
{
c = holder.lockCanvas();
if (c != null)
{
c.drawBitmap(image1, 0, 0, null);
}
} finally
{
if (c != null) holder.unlockCanvasAndPost(c);
}
}
}
现在该怎么办??
我走对了吗
提前感谢您。对于实时墙纸中的双击操作,您可以将GestureDetector子类化。SimpleGestureListener如下所示:
class wallpaperEngine extends Engine {
...
...
private GestureDetector gestureListener;
private class GestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
//start intent/application here
return super.onDoubleTap(e);
}
}
然后在onCreate(SurfaceHolder-SurfaceHolder)方法中创建该类的实例,并在实时壁纸中启用触摸事件:
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
gestureListener = new GestureDetector(getApplicationContext(), new GestureListener());
setTouchEventsEnabled(true);
}
然后@Override onTouchEvent:
@Override
public void onTouchEvent(MotionEvent event) {
gestureListener.onTouchEvent(event);
}
这是我能想到的最简单的方法。对于实时壁纸中的双击操作,您可以将GestureDetector子类化。SimpleGestureListener如下所示:
class wallpaperEngine extends Engine {
...
...
private GestureDetector gestureListener;
private class GestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
//start intent/application here
return super.onDoubleTap(e);
}
}
然后在onCreate(SurfaceHolder-SurfaceHolder)方法中创建该类的实例,并在实时壁纸中启用触摸事件:
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
gestureListener = new GestureDetector(getApplicationContext(), new GestureListener());
setTouchEventsEnabled(true);
}
然后@Override onTouchEvent:
@Override
public void onTouchEvent(MotionEvent event) {
gestureListener.onTouchEvent(event);
}
这是我能想到的最简单的方法