T
tenji73
Neues Mitglied
- 1
hallo,
bin recht neu in java und versuche gerade ein live wallpaper mit timer funktion zu programmieren hab aber zwei fragen:
1. ist es möglich den canvas inhalt zu löschen? nach jedem update erscheint die neue zeit über der alten. ich bin mir nicht sicher ob ein background mit canvas.drawColor() die richtige lösung ist - läuft da nicht der speicher irgendwann mal voll?
2.mein wallpaper funtzt wunderbar in der preview - nach dem "set wallpaper" startet er kurz bevor er abstürtzt, dann allerdings sofort wieder neustartet und weiterläuft..
vielleicht hat jemand ein paar tipps für mich... ;-)
danke schon mal und gruss
tom
hier noch mein code:
bin recht neu in java und versuche gerade ein live wallpaper mit timer funktion zu programmieren hab aber zwei fragen:
1. ist es möglich den canvas inhalt zu löschen? nach jedem update erscheint die neue zeit über der alten. ich bin mir nicht sicher ob ein background mit canvas.drawColor() die richtige lösung ist - läuft da nicht der speicher irgendwann mal voll?
2.mein wallpaper funtzt wunderbar in der preview - nach dem "set wallpaper" startet er kurz bevor er abstürtzt, dann allerdings sofort wieder neustartet und weiterläuft..
vielleicht hat jemand ein paar tipps für mich... ;-)
danke schon mal und gruss
tom
hier noch mein code:
Code:
public class myClock extends WallpaperService {
@Override
public Engine onCreateEngine() {
return new wp();
}
class wp extends Engine{
public Paint seconds;
public Canvas canvas;
private Handler mHandler = new Handler();
@Override
public void onSurfaceCreated(SurfaceHolder arg0)
{
mHandler.postDelayed(mUpdateTimeTask, 10);
}
private Runnable mUpdateTimeTask = new Runnable()
{
@Override
public void run()
{
canvas = getSurfaceHolder().lockCanvas();
seconds = new Paint();
seconds.setColor(0xFF666666);
seconds.setTextSize(50);
Date date = new Date();
canvas.drawText(Double.toString(date.getSeconds()), 10 , 100, seconds);
mHandler.postDelayed(this, 1000);
getSurfaceHolder().unlockCanvasAndPost(canvas);
}
};
}
}