Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
#1

Как запустить в таймере перепрорисовку через каждую секунду? - Программирование Android

25.01.2015, 21:40. Просмотров 291. Ответов 0
Метки нет (Все метки)

Добрый вечер, подскажите плис
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package your.package63.namespace;
 
import java.util.Timer;
import java.util.TimerTask;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
 
public class Draw2D extends View {
    private Paint mPaint;
    Context cont;
    Draw2D d2d;
    Integer q;
    
    public Draw2D(Context context) {
        super(context);
        cont = context;
        d2d=this;
        q=0;
 
        mPaint = new Paint();
        
    }
    protected void onDraw(Canvas canvas)
    {
        Log.i("OnDraw","Start");
        super.onDraw(canvas);
        mPaint.setColor(Color.DKGRAY);
        canvas.drawPaint(mPaint);
        
        mPaint.setColor(Color.YELLOW);
        mPaint.setStyle(Style.FILL);
        mPaint.setAntiAlias(true);
        canvas.drawCircle(150, 150, 20, mPaint);
        mPaint.setColor(Color.GREEN);
        
        Display disp = ((WindowManager)cont.getSystemService(cont.WINDOW_SERVICE)).getDefaultDisplay();
        canvas.drawRect(10, 10, 100, 20, mPaint);
        
        mPaint.setColor(Color.RED);
        canvas.drawRect(0, disp.getHeight()-150, 100, disp.getHeight()-120, mPaint);
        canvas.drawText(q.toString(),11, 11, mPaint);
        q++;
        Log.i("OnDraw","Good");
    }
 
 
    }
    
}
Собственно основной вопрос в том как запустить в таймере перепрорисовку через каждую секунду и какой собственно таймер необходимо использовать, заранее спс!

Добавлено через 59 минут
В общем уже сам разобрался, всем кому нуна скидываю как сделал:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package your.package63.namespace;
 
import java.util.Timer;
import java.util.TimerTask;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
 
public class Draw2D extends View {
    private Paint mPaint;
    Context cont;
    Draw2D d2d;
    Integer q;
    private Handler mHandler = new Handler();
    public Draw2D(Context context) {
        super(context);
        cont = context;
        d2d=this;
        q=0;
        mPaint = new Paint();       
        mHandler.postDelayed(TimeUpdater, 100);
    }
    protected void onDraw(Canvas canvas)
    {
        Log.i("OnDraw","Start");
        super.onDraw(canvas);
        mPaint.setColor(Color.DKGRAY);
        canvas.drawPaint(mPaint);
        
        mPaint.setColor(Color.YELLOW);
        mPaint.setStyle(Style.FILL);
        mPaint.setAntiAlias(true);
        canvas.drawCircle(150, 150, 20, mPaint);
        mPaint.setColor(Color.GREEN);
        
        Display disp = ((WindowManager)cont.getSystemService(cont.WINDOW_SERVICE)).getDefaultDisplay();
        canvas.drawRect(10, 10, 100, 20, mPaint);
        
        mPaint.setColor(Color.RED);
        canvas.drawRect(0, disp.getHeight()-150, 100, disp.getHeight()-120, mPaint);
        canvas.drawText(q.toString(),11, 11, mPaint);
        q++;
        
        
        Log.i("OnDraw","Good");
        
    }
    private Runnable TimeUpdater = new Runnable() {
        public void run() {
            d2d.invalidate();
            // задержка в 100 мс
            mHandler.postDelayed(this, 100);
        }
    };
    
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2015, 21:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как запустить в таймере перепрорисовку через каждую секунду? (Программирование Android):

Как вызывать функцию каждую секунду? - Программирование Android
Всем добрый вечер. Помогите, пожалуйста решить следующую задачу. Есть функция, которая переводит время в устный формат (да в общем не...

Как каждую секунду менять текст TextView? - Программирование Android
Подскажите, пожалуйста, как каждую секунду в течение 1,5 минуты менять текст в TextView?

Каждую секунду отнимаются очки - Программирование Android
Не могу понять в чем ошибка: private int x; private CountDownTimer countDownTimer; private int time = 0; ...

Уменьшение прогресс бара до нулевого значения каждую секунду - Программирование Android
Добрый вечер, господа. Каким образом можно выполнить эту задачу?

Как запустить активность через am start из программы андроид - Программирование Android
Всем привет. Подскажите как запустить активность через am start из программы андроид? (Не с компа через adb shell, а именно через java-код)

Подскажите как запустить через Inten Activity другого приложения - Программирование Android
Добрый день! весь смысл такой я могу просто запустить другое приложение, например как сейчас: Intent intent =...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2015, 21:40
Привет! Вот еще темы с ответами:

Как правильно сделать событие в таймере Java под андроид - Программирование Android
Проблема причем срочная,пишу диплом тема:программный таймер управления телевизором. Выбрал ось Андроид пытаюсь написать адекватный таймер...

Как запустить метод каждую секунду времени? - C#
Здравствуйте! Есть метод, который нужно запускать каждую секунду локального времени компьютера. Вроде бы сразу напрашивается таймер...

Действие через каждую секунду - jQuery
Подскажите, пожалуйста, как выводить document.log("Прошла секунда"); через каждую секунду? Использовал вот это: function...

Вывести на экран координаты тела через каждую секунду - Pascal
program Project2; {$APPTYPE CONSOLE} uses SysUtils; var max,y0,v0,g,t: real; begin


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru