Секундомер Таймер Плюс 2.0.7
Секундомер Таймер Плюс — быстро и легко, прекрасно подходит для измерения в любой ситуации от спорта, приготовления еды, работы. Простое и быстрое управление. Поменяйте экран в соответствии со своими вкусами. Простой таймер и таймер с простым для использования и просмотра интерфейсом. Программа располагает простыми и быстрыми кнопками.
- Секундомер
- Таймер(Отсчет.Обратный. отсчет)
- Время каждого круга, промежуточное время
- Выбор единицы измерения (1/1 сек, 1/10 сек, 1/100 сек или 1/1000 сек)
- Регулировка размера дисплея
- Выбор цвета
- Выбор шрифта
- Изменить ориентировку и зафиксировать ориентировку
- Сохранение при завершении
- работа аккумулятора (Если Вы закроете программу не завершив операцию измерения, программа продолжит измерение в следующий раз, когда Вы запустите программу. Нет необходимости держать ее в фоновом режиме.)Самый простой в использовании секундомер.
- Граф-таймер и таймер обратного отсчета.
- Секундомер популярностью в более чем 30 странах мира.
- Секундомер и Таймер подходит для всех ситуаций.
- Stopwatch Stop Watch Timer Alarm Kitchen секундомер таймер обратный отсчет
Источник
Красивый таймер для Android
В разработке приложения, выполняющего что-то периодически по времени, есть несколько важных моментов.
Все большие вычисления нельзя проводить в главном потоке(UI), т.к. пользователь будет сильно страдать от зависаний. Для реализации числового таймера, нам нужно раз в секунду обновлять компонент TextView
Запускать обновление будем по кнопке, также сделаем паузу и сброс отчета.
Вот код разметки главной активности activity_main.xml:
[cce lang=»xml» tab_size=»2″ no_links=»false»]
android:id=»@+id/tv_digital_clock»
android:layout_width=»wrap_content»
android:layout_height=»wrap_content»
android:layout_alignParentTop=»true»
android:layout_centerHorizontal=»true»
android:layout_marginTop=»95dp»
android:text=»00:00″
android:textAppearance=»?android:attr/textAppearanceMedium»
android:textColor=»@android:color/holo_red_dark»
android:textSize=»100sp»/>
На ней у нас присутствуют 3 Button и один TextView.
Чтобы выводить цифры красивым шрифтом, его нужно зашить во внутрь приложения и при запуске установить на нужный элемент.
Мы будем использовать шрифт DS-Digital (TrueType Fonts).
Файл со шрифтом нужно положить в папку assets.
При запуске приложения установим шрифт (Typeface) на элемент tv_digital_clock (TextView).
[cce lang=»java» tab_size=»2″ no_links=»false»]
@Override
protected void onCreate(Bundle savedInstanceState) <
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
digital_clock = (TextView) findViewById(R.id.tv_digital_clock);
tf = Typeface.createFromAsset(getAssets(), «DS-DIGI.TTF»);
digital_clock.setTypeface(tf);
>
Как работать с классом Timer я подсмотрел на этом сайте. Тут все доходчиво разъяснено, хоть и не на русском.
Он по смыслу очень похож на дельфийский, т.е. задаем интервал для выполнения одних и тех же действий.
Если нужно выключить таймер вызываем Timer.cancel().
Вот код кнопки запуска:
[cce lang=»java» tab_size=»2″ no_links=»false»]
public void onStartButtonClick(View v) <
myTimer = new Timer();
myTimer.schedule(new TimerTask() <
@Override
public void run() <
TimerMethod();
>
>, 0, 1000);
>;
Создали новый класс Timer и задали ему расписание (schedule). Первый параметр означает задержку запуска, второй параметр (1000) означает период в миллисекундах, т.е. одна секунда.
Вот метод и дочерний поток:
[cce lang=»java» tab_size=»2″ no_links=»false»]
private void TimerMethod() <
// This method is called directly by the timer
// and runs in the same thread as the timer.
// We call the method that will work with the UI
// through the runOnUiThread method.
this.runOnUiThread(Timer_Tick);
>
private Runnable Timer_Tick = new Runnable() <
public void run() <
mCurrentPeriod++;
String temp = (new SimpleDateFormat(«mm:ss»)).format(new Date(
mCurrentPeriod * 1000));
digital_clock.setText(temp);
// This method runs in the same thread as the UI.
// Do something to the UI thread here
Тут интересен способ получения форматированной сточки обозначающей время и исходного числа секунд.
Мы создаем новый тип Date, на вход подаем количество миллисекунд. Потом применяем форматирование даты при помощи SimpleDateFormat. Нужный шаблон указан как минуты и секунды «mm:ss».
Вот код двух других кнопок:
[cce lang=»java» tab_size=»2″ no_links=»false»]
public void onPauseButtonClick(View v) <
if (myTimer != null)
myTimer.cancel();
>;
public void onResetButtonClick(View v) <
mCurrentPeriod = 0;
if (myTimer != null)
myTimer.cancel();
digital_clock.setText(«00:00»);
>;
А при выходе из приложения мы обязательно его спросим:
[cce lang=»java» tab_size=»2″ no_links=»false»]
public void onBackPressed() <
new AlertDialog.Builder(this)
.setMessage(«Вы действительно хотите покинуть программу?»)
.setCancelable(false)
.setPositiveButton(«Да», new DialogInterface.OnClickListener() <
public void onClick(DialogInterface dialog, int id) <
finish();
>
>).setNegativeButton(«Нет», null).show();
>;
На всякий случай здесь весь класс MainActivity целиком:
[cce lang=»java» tab_size=»2″ no_links=»false»]
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity <
TextView digital_clock;
Typeface tf;
int mCurrentPeriod = 0;
private Timer myTimer;
@Override
protected void onCreate(Bundle savedInstanceState) <
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
digital_clock = (TextView) findViewById(R.id.tv_digital_clock);
tf = Typeface.createFromAsset(getAssets(), «DS-DIGI.TTF»);
digital_clock.setTypeface(tf);
>
public void onBackPressed() <
new AlertDialog.Builder(this)
.setMessage(«Вы действительно хотите покинуть программу?»)
.setCancelable(false)
.setPositiveButton(«Да», new DialogInterface.OnClickListener() <
public void onClick(DialogInterface dialog, int id) <
finish();
>
>).setNegativeButton(«Нет», null).show();
>;
public void onStartButtonClick(View v) <
myTimer = new Timer();
myTimer.schedule(new TimerTask() <
@Override
public void run() <
TimerMethod();
>
>, 0, 1000);
>;
public void onPauseButtonClick(View v) <
if (myTimer != null)
myTimer.cancel();
>;
public void onResetButtonClick(View v) <
mCurrentPeriod = 0;
if (myTimer != null)
myTimer.cancel();
digital_clock.setText(«00:00»);
>;
private void TimerMethod() <
// This method is called directly by the timer
// and runs in the same thread as the timer.
// We call the method that will work with the UI
// through the runOnUiThread method.
this.runOnUiThread(Timer_Tick);
>
private Runnable Timer_Tick = new Runnable() <
public void run() <
mCurrentPeriod++;
String temp = (new SimpleDateFormat(«mm:ss»)).format(new Date(
mCurrentPeriod * 1000));
digital_clock.setText(temp);
// This method runs in the same thread as the UI.
// Do something to the UI thread here
Красивый таймер для Android : 12 комментариев
Здравствуйте! А не могли бы вы в объяснении показать как выглядит базовый шаблон класса таймер? Мне как новичку не все понятно.
Например, обработчик запуска таймера содержит код:
public void onStart(View view) <
mTimer = new Timer();
mTimer.schedule(new TimerTask() <
@Override
public void run() <
TimerMethod();
>
>);
>
я понимаю это базовый шаблон, где мы инициализируем наш таймер,
затем вызываем метод schedule( ), в котором как условие создаем новый метод new TimerTask, в котором в свою очередь переопределяем метод run ( ); и в нем уже запускаем свой код.
В нашем случае этим кодом является метод(?) — TimerMethod ();
В этом методе есть строка:
this.runOnUiThread(Timer_Tick);
Тут я уже начинаю терять суть. хотелось бы пояснить эту строку кода. Судя по названию, это запуск в основном потоке. Ведь таймер работает в своем собственном потоке.
И далее Timer_Tick это переменная интерфейса Runnable, в котором я уже совсем потерялся.
Хотелось бы поподробнее что этот Runnable умеет и как выглядит его базовый шаблон. То есть для чего его вызывают и какие команды в нем обычно используют.
Доступ ко всем элементам интерфейса должен проходить в главном потоке. Потому мы и говорим runOnUiThread, т.е. работай в главном потоке.Вот же все по-русски написано:
// This method is called directly by the timer
// and runs in the same thread as the timer.
// We call the method that will work with the UI
// through the runOnUiThread method.
Этот метод вызывается прямо из таймера и работает в том же потоке что и таймер. А потом нам нужно его переслать в главный поток.
Иными словами, нам нужен поток, который периодически стучится в главный поток с UI, чтобы обновить интерфейс.
Не по русски, а по английски ;))
То есть это шаблонная структура? Уже сам код внутри Runnable > Run ()
Runnable это interface, и у него один абстрактный класс run, который нужно реализовать самому. Вот же пацаны пишут Often used to run code in a different Thread. И без русско-болгарского разговорника все понятно )
Окей) буду пилить этот вариант реализации таймера))
Я прочитал описание Runnable по ссылке из примера, но хотелось бы живой пример и лучше на нашем примере все разобрать))
Очень понятная статья. Спасибо.
Нашел дефект: если нажать еще раз на кнопку старта (что очень вероятно со смартфонами), то создается еще один поток и время начинает идти быстрее.
С потоками побоялся, что-то делать, так что починил путем добавления:
Button startButton = (Button) findViewById(R.id.start_button);
startButton.setClickable(false);
В метод запуска таймера и такую же разблокировку в метод для кнопки паузы.
Решил эту проблему тем, что повесил на кнопку условие с переменными, которые контролируют работу потока, типа если раз нажал, переменную изменил, и если переменная не та, что нужна, то не выполнять код повторного запуска потока)
Вам нужно работу по отсчету времени вынести в отдельный сервис, и из него отправлять широковещательные сообщения в активити.
Не запустилось.
FATAL EXCEPTION: main
01-03 15:12:54.106 1358-1358/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo
Привет, сделал по вашему примеру таймер, использовал не весь код, кусками и многое переделал под себя. Но нетронутыми оставил работу процесса таймера в пользовательском потоке. Протестировал приложение, и выявил проблему в том, что таймер работает чуть больше одной минуты, в случае если приложение свернуто или экран телефона заблокирован. Полагаю, что пользовательский процесс имеет свойство останавливаться, если устройство не используется. По этой причине у меня возник вопрос, в каком потоке, в таком случае, нужно запускать код таймера, чтобы он работал до тех пор пока время не выйдет? Понимаю, что статья уже достаточно старая, но вдруг случится чудо и мне ответят, не автор, так может кто-то из пользователей кто сталкивался с такой же проблемой)) з.ы. спасибо автору за урок, несколько новых фишек для себя взял на вооружение
Здравствуйте.
Не могли бы вы выложить ссылку на проект ?
Источник
7 лучших приложений таймера для Android
Появление магазинов мобильных приложений принесло нам разнообразие даже для повседневных повседневных задач, о которых мы обычно не думаем дважды. Возможность установить таймеры является одним из них.
Теперь у вас есть возможность выбрать из огромного спектра приложений для таймера, нужно ли вам это для упражнения или учебной сессии. Вот лучшие приложения таймера для Android.
1. Визуальный таймер
Visual Timer — это минималистичное приложение с чистым дизайном, которое позволяет быстро запустить таймер. Он имеет большой интерфейс часов на домашней странице, с которым вы можете взаимодействовать, чтобы установить продолжительность. Как только вы отпустите палец, Visual Timer автоматически начнет отсчет времени.
В приложении есть множество других инструментов, которые вам могут пригодиться, например, пользовательские пресеты для сессий, которые вам регулярно нужны, одновременные таймеры, параметры звука, ночной режим и многое другое.
Скачать: Визуальный таймер (бесплатно)
2. Goodtime
Если вы в первую очередь хотите создать таймеры для повышения производительности, попробуйте Goodtime. Приложение построено для управления временем и позволяет вам следовать подходу Pomodoro к управлению временем
Как простой таймер Pomodoro сделал мою жизнь лучше
Как простой таймер Pomodoro сделал мою жизнь лучше
Техника Pomodoro — один из самых простых лайфхаков по управлению временем. Прорывайтесь отвлекаться с помощью 25-минутных кусков и таймера. Это может быть изменяющее жизнь рутинное изменение, если оно вас устраивает.
Прочитайте больше
, Pomodoro подразумевает, что вы разбиваете работу на короткие сессии, разделенные мини и длинными перерывами. Это умный метод управления временем, который оказался успешным для многих, включая меня.
Goodtime позволяет вам сделать то же самое с помощью простого пользовательского интерфейса на основе жестов. Вы можете перемещаться между перерывом и работой, проводя пальцем влево или вправо, проводя вверх, чтобы добавить еще одну минуту, и проводя вниз, чтобы завершить сеанс.
В приложении также есть вкладка статистики, где вы можете увидеть, насколько хорошо вы выступили в предыдущих сессиях, и пометить каждый из них соответствующим флагом. Также есть OLED-дружественная темная тема и полноэкранный режим. Кроме того, Goodtime имеет открытый исходный код и не показывает никакой рекламы.
Скачать: Goodtime (бесплатная, премиум версия доступна)
3. Таймер Плюс
Для людей в поисках таймера тренировки, не смотрите дальше, чем Timer Plus. Это бесплатное приложение предлагает возможность настроить целые интервальные тренировки с вариантами перерывов, количеством раундов, которые вы хотели бы пройти, и количеством общих подходов.
Более того, вы найдете большой, смелый дизайн, чтобы вы могли просматривать статус без каких-либо хлопот во время тренировки. Timer Plus также имеет голосовую помощь, которая говорит, когда вы собираетесь в перерыв или новый раунд. Точно так же приложение мигает экраном вашего телефона или запускает заднюю светодиодную вспышку — отлично, если вы обычно держите его подальше от места для тренировок.
Вы можете создать столько пользовательских предустановок обучения, сколько захотите, и переходить к ним без навигации по кучам меню. Также есть встроенный секундомер.
Скачать: Таймер Плюс (бесплатно)
4. Интервальный таймер
Если вы чувствуете, что Timer Plus немного перегружен вашими потребностями, взгляните на Interval Timer. Приложение имеет значительно более простой интерфейс, практически без кривой обучения, и позволяет быстро определять наборы, а также их длительности.
Вы можете указать один рабочий интервал и другой для отдыха на каждом круге. Кроме того, он имеет большие шрифты и яркие цвета, так что вы можете с комфортом проверить свой темп. Тем не менее, Interval Timer показывает рекламные баннеры.
Скачать: Интервальный таймер (бесплатно)
5. Таймер
Timer — еще одно приложение, ориентированное на фитнес, которое создано в основном для тренировок с участием кругов, например спринтов Он имеет продуманный интерфейс, который позволяет мгновенно запускать секундомер или таймер, и с ним легко взаимодействовать, чтобы отмечать круги.
Приложение отображает эти точки разными цветами, и вы можете просто провести пальцем влево, чтобы просмотреть полный список кругов. Кроме того, у вас есть доступ к таким параметрам, как темы, предустановки и некоторые другие.
Скачать: Таймер (бесплатно)
6. Фокус мозга
Brain Focus — приложение для таймера, ориентированное на производительность. По сравнению с Goodtime, здесь есть пара продвинутых утилит, особенно для людей, которым трудно сконцентрироваться. Для начала вы можете создавать сеансы на основе техники Pomodoro и анализировать статистику, чтобы лучше понять, как вы работаете.
Но Brain Focus опирается на это, добавив кучу изящных инструментов. Например, он может блокировать Wi-Fi и звук, когда вы находитесь в середине сеанса. Более того, вы можете заблокировать ненужные сторонние приложения (такие как Instagram) прямо из Brain Focus.
У вас также есть возможность генерировать новые пресеты для конкретных задач и классифицировать для облегчения доступа. Темы также доступны, наряду с настройками настройки для таймеров и связанных уведомлений.
Скачать: Brain Focus (бесплатная, доступная премиум-версия)
7. Engross
Engross предлагает знакомый набор функций для приложения таймера, но он выделяется вкладкой для ваших задач. Это позволяет вам запускать таймеры и связывать их с вашими задачами.
Engross следует тому же стилю Pomodoro, но вы можете персонализировать периоды в зависимости от ваших предпочтений. Слева также есть подробный экран статистики, который даже показывает анализ ваших возможностей фокусировки.
Скачать: Engross (бесплатная, премиум версия доступна)
Далее попробуйте новое приложение будильника
К этому времени вы, должно быть, уже поняли, что в Play Store доступно множество приложений для таймера, которые могут удовлетворить любые ваши конкретные потребности. Приложения, перечисленные выше, предлагают лучший набор функций в своих областях, и большинство из них также абсолютно бесплатны.
Если вам также не хватает стандартного приложения-будильника на телефоне, попробуйте эти лучшие сторонние приложения-часы для Android
10 лучших приложений-будильников для Android в 2016 году
10 лучших приложений-будильников для Android в 2016 году
Наличие твердого приложения будильника важно, если вы хотите проснуться вовремя. Попробуйте один из них.
Прочитайте больше
,
Узнайте больше о: приложениях для Android, управлении временем, программном обеспечении для таймеров.
10 лучших бесплатных Google шрифтов для профессиональных презентаций
Источник