Android Live Wallpaper - keine Hintergrundbild zeigt?
Frage
Ich begann Implementierung von Android Live Wallpaper, im Anschluss an die Beispiele und Tutorials im Internet zu finden, und ich kann nicht schließen png Hintergrund als Hintergrund. Auch überprüfte mit ähnlichen Problemen hier, und kann immer noch nicht damit es funktioniert.
Dies ist der Code:
public class LiveWallpaper extends WallpaperService {
/* IDs of recurces needed for animations*/
private SurfaceHolder holder;
private static final String TAG = "MyActivity";
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public Engine onCreateEngine() {
return new WallpaperEngine();
}
class WallpaperEngine extends Engine {
public final Runnable mDrawWallpaper = new Runnable(){
public void run(){
drawWallpaper();
}
};
@Override
public void onCreate(SurfaceHolder surfaceHolder){
super.onCreate(surfaceHolder);
setTouchEventsEnabled(false);
loadImagesIntoMemory(R.drawable.wallpaper);
holder = getSurfaceHolder();
}
void drawWallpaperContent(Canvas c, int resourceId){
Bitmap decodeResoure = BitmapFactory.decodeResource (getResources(), resourceId);
c.drawBitmap(decodeResoure, 0, 0, null);
}
void drawWallpaper(){
final SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
c = holder.lockCanvas();
if(c!=null){
c.save();
drawWallpaperContent(c, R.drawable.wallpaper);
c.restore();
}
}
private void loadImagesIntoMemory(int resourceId){
Resources res = getResources();
BitmapFactory.decodeResource(res, resourceId);
}
@Override
public void onDestroy(){
super.onDestroy();
mHandler.removeCallbacks(mDrawWallpaper);
}
}
}
Bitmap wird in ziehbar Ordner gespeichert, und die Version von Android sdk ist 2.2. Nachdem die Live-Tapete starten, I ‚Loading Wallpaper‘ nur erhalten, ohne das Hintergrundbild zeigt.
Hat jemand weiß, was das Problem sein könnte?
Danke. Dj.
Lösung
verwenden Sie diese in Ihrem Draw
"Bitmap-Bild = BitmapFactory.decodeResource (GetResources (), R.drawable.image);
canvas.drawBitmap(image, 0, 0, paint);
Sie können null in Farbe Parameter. m mit diesem und seinem Arbeits
Andere Tipps
Ich kämpfte mit einem ähnlichen Problem, c.drawColor(0xff000000);
bevor die Bitmap zeichnen die Lösung für mich.