Красивый таймер для андроид

Секундомер Таймер Плюс 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: java.lang.RuntimeException: native typeface cannot be made

Привет, сделал по вашему примеру таймер, использовал не весь код, кусками и многое переделал под себя. Но нетронутыми оставил работу процесса таймера в пользовательском потоке. Протестировал приложение, и выявил проблему в том, что таймер работает чуть больше одной минуты, в случае если приложение свернуто или экран телефона заблокирован. Полагаю, что пользовательский процесс имеет свойство останавливаться, если устройство не используется. По этой причине у меня возник вопрос, в каком потоке, в таком случае, нужно запускать код таймера, чтобы он работал до тех пор пока время не выйдет? Понимаю, что статья уже достаточно старая, но вдруг случится чудо и мне ответят, не автор, так может кто-то из пользователей кто сталкивался с такой же проблемой)) з.ы. спасибо автору за урок, несколько новых фишек для себя взял на вооружение

Здравствуйте.
Не могли бы вы выложить ссылку на проект ?

Источник

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 шрифтов для профессиональных презентаций

Источник

Оцените статью