Android Live Wallpaper - immagine di sfondo non mostrando?
Domanda
Ho iniziato realizzazione di wallpaper android dal vivo, seguendo gli esempi e tutorial trovato su internet, e non può includere png sfondo come sfondo. Anche controllato con problemi simili qui, e ancora non riesco a farlo funzionare.
Questo è il codice:
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 è memorizzato nella cartella disegnabile, e la versione di Android SDK è 2.2. Dopo il lancio della carta da parati dal vivo, ho solo 'Caricamento carta da parati' senza mostrare l'immagine di sfondo.
Qualcuno sa che cosa potrebbe essere il problema?
Grazie. Dj.
Soluzione
utilizzare questo nel vostro progetto
'immagine bitmap = BitmapFactory.decodeResource (getResources (), R.drawable.image);'
canvas.drawBitmap(image, 0, 0, paint);
è possibile passare null nel parametro vernice. m utilizzando questa e il suo funzionamento
Altri suggerimenti
ho lottato con un problema simile, c.drawColor(0xff000000);
prima di disegnare la bitmap è stata la soluzione per me.