我开始墙纸出日食,卸载重新安装导出的墙纸,但它也不适用于智能手机,也没有在模拟器上。
的清单:
package="de.zdev.wallpaper.cpubeat"
android:versionCode="1"
android:versionName="1.0" >
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
android:name="de.zdev.wallpaper.CPUBeatService"
android:label="@string/app_name"
android:permission="android.permission.BIND_WALLPAPER" >
android:name="android.service.wallpaper"
android:resource="@xml/wallpaper" />
的 “wallpaper.xml”(我不认为这个问题是在这里):
xmlns:android="http://schemas.android.com/apk/res/android"
android:thumbnail="@drawable/ic_launcher"
android:description="@string/description" />
最后我“CPUBeatService.java “:
package de.zdev.wallpaper.cpubeat;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Handler;
import android.service.wallpaper.WallpaperService;
import android.service.wallpaper.WallpaperService.Engine;
import android.view.SurfaceHolder;
public class CPUBeatService extends WallpaperService {
@Override
public Engine onCreateEngine(){
return new CPUBeatEngine();
}
private class CPUBeatEngine extends Engine{
private final Handler handler = new Handler();
private boolean visible = true;
private int width, height;
private final Runnable drawRunnable = new Runnable(){
public void run(){
doDraw();
}
};
public CPUBeatEngine(){
handler.post(drawRunnable);
}
private void draw(Canvas c){
c.drawColor(Color.GREEN);
}
@Override
public void onVisibilityChanged(boolean v){
visible = v;
if(visible) handler.post(drawRunnable);
else handler.removeCallbacks(drawRunnable);
}
@Override
public void onSurfaceDestroyed(SurfaceHolder holder){
super.onSurfaceDestroyed(holder);
visible = false;
handler.removeCallbacks(drawRunnable);
}
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format, int w, int h){
super.onSurfaceChanged(holder, format, w, h);
width = w;
height = h;
}
private void doDraw(){
SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
try {
c = holder.lockCanvas();
if (c != null) {
//do the real drawing now
draw(c);
}
} finally {
if (c != null)
holder.unlockCanvasAndPost(c);
}
handler.removeCallbacks(drawRunnable);
if (visible) {
handler.postDelayed(drawRunnable, 5000);
}
}
}
}
感谢任何能提供帮助的人。
2012-06-14
Lars