1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. tenji73, 13.12.2010 #1
    tenji73

    tenji73 Threadstarter Neuer Benutzer

    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:

    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);
                }
            };
        }
    }
    
    
     
  2. miha, 14.12.2010 #2
    miha

    miha Fortgeschrittenes Mitglied

    zu 1: canvas.drawARGB malt alles über (solange kein Clipping gesetzt ist)

    zu 2 wäre ein Log hilfreich - falls du noch nicht reingeschaut hast tu das! (adb logcat)
     
    Zuletzt bearbeitet: 14.12.2010

Diese Seite empfehlen