- Forum-Beiträge: 58
25.05.2018, 14:18:25 via Website
25.05.2018 14:18:25 via Website
Hallo,
ich möchte von einer Klasse eine View repainten. Der Timer läuft zwar aber die View wird nicht neugezeichnet.
public class MyView extends SurfaceView{
private MainActivity mainActivity;
private Random random = new Random();
private static MyView Instance;
public MyView(Context context) {
super(context);
mainActivity = (MainActivity)context;
}
public final static MyView getInstance(Context context) {
if(Instance==null) {
Instance = new MyView(context);
}
return Instance;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
setBackgroundColor(Color.argb(random.nextInt(255),random.nextInt(255),
random.nextInt(255),random.nextInt(255)));
}
}
public class MyThread implements SurfaceHolder.Callback {
private Timer timer = new Timer();
private MainActivity mainActivity;
private MyView myView;
private TimerThread timerThread = new TimerThread();
public MyThread(Context context) {
mainActivity = (MainActivity) context;
myView = MyView.getInstance(context);
timer.schedule(timerThread,50,50);
}
class TimerThread extends TimerTask {
@Override
public void run() {
mainActivity.runOnUiThread(new TimerTask() {
@Override
public void run() {
Log.v("Log","Timer run");
myView.invalidate();
}
});
}
}
Woran liegt das, dass die View nicht neugezeichnet wird?
— geändert am 25.05.2018, 14:41:19
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.