Az alkalmazás manifest állományában az élő háttérkép alkalmazáshoz meg kell adni az élő háttérkép jogosultságot android:permission="android.permission.BIND_WALLPAPER", illetve a market felé az élő háttérkép alkalmazást jelezni kell
node -ban. A service node-ban az android:name=".OwnWallpaper" rész tartalmazza annak az osztálynak a nevét, ami megvalósítja az élő háttérkép osztályt. Az élő háttérkép alkalmazáshoz létre kell hozni egy XML állományt is, aminek az alábbi módon kell kinéznie (erre a manifest állományban is hivatkozni kell android:resource="@xml/own"):
Az own.xml állományt a /res/xml/own.xml útvonalon kell létrehozni
Az OwnWallpaper osztály pedig az alábbiak szerint kell megcsinálni:
package hu.globomax.wallpaperdemo;
import java.util.Date;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.service.wallpaper.WallpaperService;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
public class OwnWallpaper extends WallpaperService {
@Override
public Engine onCreateEngine() {
return new CubeEngine();
}
class CubeEngine extends Engine {
private final Paint mPaint = new Paint();
private float mTouchX = 0;
private float mTouchY = 0;
CubeEngine() {
final Paint paint = mPaint;
paint.setColor(0xffffffff);
paint.setTextSize(25);
}
@Override
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
// Érintés eseményre kezelés jelzése
setTouchEventsEnabled(true);
}
@Override
public void onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
if (event.getAction() == MotionEvent.ACTION_UP) {
mTouchX = -1;
mTouchY = -1;
} else {
mTouchX = event.getX();
mTouchY = event.getY();
}
drawFrame();
}
@SuppressWarnings("deprecation")
void drawFrame() {
final SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
try {
c = holder.lockCanvas();
if (c != null) {
c.save();
c.drawColor(0xff000000);
c.drawText(new Date(System.currentTimeMillis())
.toLocaleString(), mTouchX, mTouchY, mPaint);
c.restore();
}
} finally {
if (c != null)
holder.unlockCanvasAndPost(c);
}
}
}
}
Az így elkészült alkalmazás pedig az alábbiak szerint viselkedik:
Fontos eseménykezelő metódusok:
onCreateEngine()
- WallpaperService.Engine létrehozása
A létrehozott Engine fontosabb eseménykezelő metódusai:
onVisibilityChanged():
- ha háttérbe kerül az alkalmazás
onOffsetChanged()
- a home screen-ek közötti váltáskor üt be
onTouchEvent():
- érintéskor bekövetkező eseménykezelő
onCommand():
- más alkalmazás által küldött üzenetek érkezésekor üt be





















