Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Мобильные ОС (Android, iOS, Windows Phone)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2016, 16:14   #1
rynkovoy
Новичок
Джуниор
 
Регистрация: 13.09.2016
Сообщений: 1
По умолчанию Перерисовка картинки андроид

Нужно перерисовывать секундную стрелку часов. Запихнул всё в timetask и запускаю через таймер.
не могу разобраться, как это сделать. пример кода приветствуется))))

Код:
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DrawView myDrawView = new DrawView(this);
        setContentView(myDrawView);
        myDrawView.tikTak();
    }
}
 
public class DrawView extends View {
    Paint p;
    Rect c;
    Timer myTimer;
    int x0 = 540;
    int y0 = 500;
    int R = 400;
    private final double angle = 6 * Math.PI / 180;
    double a ;
    int x = 0;
    int x1 = 0;
    int y1 = 0;
 
    public DrawView(Context context) {
        super(context);
        p = new Paint();
        c = new Rect();
 
        p.setColor(Color.BLACK);
        p.setStrokeWidth(4);
        p.setStyle(Paint.Style.STROKE);
        p.setTextSize(50);
    }
 
    @Override
    public void onDraw(Canvas canvas){
        canvas.drawPoint(x0, y0, p); //точка - центр
        canvas.drawCircle(x0, y0, R, p);
 
        p.setColor(Color.RED);
        p.setStrokeWidth(3);
 
        x1 = (int) (x0 + R * Math.cos(a));
        y1 = (int) (y0 + R * Math.sin(a));
 
        canvas.drawLine(x0, y0, x1, y1, p);
    }
 
    public void tikTak(){
        myTimer = new Timer();
        myTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                if (x == 60) x = 0;
                else x++;
                a = getAngle();
            }
        },0, 1000);
    }
 
    public double getAngle(){
        return x * angle;
    }
}
rynkovoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли написать веб сервер на Яве для клиента на Андроид,имея под рукой только телефон на том самом андроид? Nevesel Помощь студентам 10 07.06.2016 02:29
Перерисовка в image Chester751 Общие вопросы Delphi 4 15.09.2013 10:23
Перерисовка и масштабирование картинки exelim Win Api 2 12.10.2011 10:11
Перерисовка в ShellListView artemavd Общие вопросы Delphi 2 04.04.2010 19:18
Перерисовка RichEdit SanekIrk Компоненты Delphi 9 15.09.2009 00:31