Back to project page Sertimus.
The source code is released under:
GNU General Public License
If you think the Android project Sertimus listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* Sertimus - A live wallpaper featuring a cute Chao. // w w w .jav a 2s . c o m Copyright (C) 2013 Kevin Negrin This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ // DrawThread.java - Thread for drawing the state of the currently active MainCanvas object. package gameaddict30.wallpaper.sertimus; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Typeface; import android.view.SurfaceHolder; public class DrawThread extends Thread { private MainCanvas canv; private Object drawLock; private boolean isActive = false; private SurfaceHolder holder; private Canvas c = null; private Paint p; private boolean stillRunning = true; public DrawThread(MainCanvas canv, Object lock) { this.canv = canv; this.drawLock = lock; this.holder = canv.getHolder(); p = new Paint(); p.setColor(Color.BLACK); p.setTypeface(Typeface.SANS_SERIF); p.setTextSize(8f); start(); } public void run() { while (stillRunning) { synchronized (drawLock) { isActive = false; try { drawLock.wait(); } catch (InterruptedException e) { return; } isActive = true; } if (!stillRunning) break; c = null; try { c = holder.lockCanvas(); c.drawBitmap(canv.drawAndReturnSnapshot(), 0, 0, null); } finally { holder.unlockCanvasAndPost(c); } } } public boolean isActive() { // TODO Auto-generated method stub return isActive; } public void finish() { stillRunning = false; synchronized (drawLock) { if (!this.isActive) drawLock.notify(); } } }