1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

canvas probleme

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von tenji73, 13.12.2010.

  1. tenji73, 13.12.2010 #1
    tenji73

    tenji73 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    1
    Registriert seit:
    13.12.2010
    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

    Beiträge:
    294
    Erhaltene Danke:
    43
    Registriert seit:
    12.01.2010
    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