Chronometer android studio kotlin

Chronometer

Компонент Chronometer находился в разделе Date в старых версиях студии. Позволяет пользователю запускать и останавливать начальный отсчёт времени, а также задавать время запуска таймера.

Основные методы:

  • start() — запускает отсчёт времени;
  • stop() — останавливает отсчёт времени;
  • setFormat() — задаёт формат отображения времени. По умолчанию используется формат «MM:SS» или «H:MM:SS». Можно задать свой формат, при этом в строке format первое встреченное «%s», будет заменено на «HH:MM». Например: «Time: %s» будет выводить время «Time: 01:30»

Класс Chronometer имеет интерфейс OnChronometerTickListener.

Поместите на экран активности компонент Chronometer и три кнопки Старт, Стоп, Сброс.

Напишем код для запуска, остановки и сброса секундомера. Весь код сводится обработке щелчков кнопки.

В примере также добавлена реализация OnChronometerTickListener — когда секундомер отсчитает 5 секунд, то появится всплывающее сообщение.

Обратный отсчёт

В API 24 появился новый метод setCountDown(), позволяющий работать в режиме обратного отсчёта. Родственный XML-атрибут для него — android:countDown. Метод isCountDown() позволит узнать, в каком режиме работает хронометр.

Последний отсчёт

Читая документацию, наткнулся на новый метод из API 26 (Android 8.0 Oreo) — isTheFinalCountDown(). Я запустил этот код и чуть не упал со стула от неожиданности — неожиданно в телефоне заиграл видеоролик с песней «The Final Countdown/Последний отсчёт» группы «Европа/Europe». Разработчики развлекаются.

Источник

Хронометр в Котлине

Android ChronoMeter — это элемент управления пользовательского интерфейса, который показывает таймер в представлении. Мы можем легко запустить счетчик времени с базовым временем, используя виджет хронометра. По умолчанию метод start () может использовать базовое время и запускать счетчик.

Как правило, мы можем создать использование виджета ChronoMeter в макете XML, но мы можем сделать это и программно.

Сначала мы создаем новый проект , выполнив следующие шаги:

  1. Нажмите Файл , затем Новый =>Новый проект .
  2. После этого включите поддержку Kotlin и нажмите «Далее».
  3. Выберите минимальный SDK для удобства и нажмите кнопку « Далее» .
  4. Затем выберите Пустое занятие =>Далее =>Готово .

Различные атрибуты для виджета ChronoMeter

XML attributes Description
android:id Used to specify the id of the view.
android:textAlignment Used to the text alignment in the dropdown list.
android:background Used to set the background of the view.
android:padding Used to set the padding of the view.
android:visibilty Used to set the visibility of the view.
android:gravity Used to specify the gravity of the view like center, top, bottom etc
android:format Used to define the format of the string to be displayed.
android:countDown Used to define whether the chronometer will count up or count down.

Изменить файл activity_main.xml

В этом файле мы используем виджет ChronoMeter вместе с кнопкой для запуска или остановки счетчика, а также устанавливаем атрибуты для них обоих.

Источник

Chronometer in Kotlin

Android ChronoMeter is user interface control which shows timer in the view. We can easily start up or down counter with base time using the chronometer widget. By default, start() method can assume base time and starts the counter.
Generally, we can create use ChronoMeter widget in XML layout but we can do it programmatically also.

First we create a new project by following the below steps:

  1. Click on File, then New =>New Project.
  2. After that include the Kotlin support and click on next.
  3. Select the minimum SDK as per convenience and click next button.
  4. Then select the Empty activity =>next =>finish.

Different attributes for ChronoMeter widget

XML attributes Description
android:id Used to specify the id of the view.
android:textAlignment Used to the text alignment in the dropdown list.
android:background Used to set the background of the view.
android:padding Used to set the padding of the view.
android:visibility Used to set the visibility of the view.
android:gravity Used to specify the gravity of the view like center, top, bottom, etc
android:format Used to define the format of the string to be displayed.
android:countDown Used to define whether the chronometer will count up or count down.

Modify activity_main.xml file

In this file, we use the ChronoMeter widget along with a button to start or stop the meter and also set attributes for both of them.

Источник

Tutorialwing

In this article, we will learn how to create android ChronoMeter programmatically in Kotlin. We will go through various steps that explains how to create ChronoMeter and add it in kotlin file, use different attributes to customise it etc. in any android application. For example, how to set text in ChronoMeter programmatically, how to set id of ChronoMeter, how to capitalise text of ChronoMeter dynamically etc. We will get answer to all such questions in this post.

Output

Tutorialwing Kotlin Dynamic ChronoMeter Output

Tutorialwing Kotlin Dynamic ChronoMeter Output

Getting Started

We can define android ChronoMeter widget as below –

ChronoMeter is simple widget that can be used as simple timer. You can count up or down with a given base time using chronoMeter. If you do not provide a base time, it will assume base time as time at which you call start() method.

Now, how do we use ChronoMeter in android application ?

Creating New Project

Follow steps below to create any android project in Kotlin –

Step Description
1. Open Android Studio (Ignore if already done).
2. Go to File => New => New Project. This will open a new window. Then, under Phone and Tablet section, select Empty Activity. Then, click Next.
3. In next screen, select project name as DynamicChronoMeter. Then, fill other required details.
4. Then, clicking on Finish button creates new project.

Newbie in Android ?
Some very important concepts (Recommended to learn before you move ahead)

Before we move ahead, we need to setup for viewBinding to access ChronoMeter in Kotlin file without using findViewById() method.

Setup ViewBinding

Add viewBinding true in app/build.gradle file.

Now, set content in activity using view binding.
Open MainActivity.kt file and write below code in it.

Now, we can access view in Kotlin file without using findViewById() method.

Since we have a new project, we will modify the xml and class file to use ChronoMeter programmatically in kotlin. Please follow the steps below.

2. Modify Values Folder

Open res/values/strings.xml file. Add below code into it.

Other values folders have not been changed. So, we are not going to mention it here.

3. Modify Layout Folder

Open res/layout/activity_main.xml file. Add below code into it.

Note that LinearLayout has id rootContainer. In Kotlin file, we will create ChronoMeter Dynamically and add it into this LinearLayout having id rootContainer.

4. Create Android ChronoMeter programmatically in Kotlin

Open src/main/java/com.tutorialwing.dynamicchronometer/MainActivity.kt file. Then, add below code into it.

We have created chronoMeter programmatically in kotlin file (i.e. MainActivity.kt file) in the application. Then, we have set layout params, margins etc. in it. After that, we have set click listener in button to play/pause the chronoMeter. We are also showing a message, as toast, that display the current status of the chronoMeter whether it is playing or paused. At last, we have added this chronoMeter in linearLayout. Similarly, you can add chronoMeter in other layouts such as RelativeLayout, FrameLayout etc.

Finally, when you run the application, you will get output as shown above.

Tutorialwing Kotlin Dynamic ChronoMeter Output

Tutorialwing Kotlin Dynamic ChronoMeter Output

Now, Let’s check how to use different attributes of ChronoMeter to customize it dynamically –

Set Id of ChronoMeter

Follow steps below to set id of ChronoMeter programmatically –

  • Create ids.xml file in res/values folder. Then, add below code into it –
  • Now, we can set id of ChronoMeter dynamically, in MainActivity.kt file, as –

Here, we have set id of ChronoMeter using property access syntax – chronoMeter.id

Set Width and Height of ChronoMeter

We use layoutParams to set width and height of any View programmatically. In this article, we have added ChronoMeter in LinearLayout. So, we will define LayoutParams as below –

Here, we have set width and height as WRAP_CONTENT. Some of possible values for width and height are –

  • WRAP_CONTENT: Sets value of width or height depending on text inside it.
  • MATCH_PARENT: Sets value of width of height depending on width or height of parent layout . i.e. width or height of ChronoMeter will be same as width or height of parent layout.
  • Fixed Value: Sets width or height as per value provided.

Set Padding of ChronoMeter

Follow steps below to set padding of ChronoMeter Dynamically –

  • If there is no dimens.xml file, create dimens.xml file in res/values folder. Then, add below code in it –
  • Now, we can set padding of ChronoMeter dynamically, in MainActivity.kt file, as –

Here, we have accessed dimension defined in dimens.xml using getDimension() method. Then, set padding of ChronoMeter using setPadding() method.

Set Margin of ChronoMeter

Follow steps below to set margin of ChronoMeter Dynamically –

  • If there is no dimens.xml file, create dimens.xml file in res/values folder. Then, add below code in it –
  • Now, we can set margin of ChronoMeter dynamically, in MainActivity.kt file, as –

Here, we have accessed dimension defined in dimens.xml using getDimension() method. Then, we have defined layoutParams, set margin to layoutParams. After that, set layoutParams to ChronoMeter.

Set Background of ChronoMeter

Follow steps below to set background of ChronoMeter programmatically –

  • If there is no colors.xml file, create colors.xml file in res/values folder. Then, add below code in it –
  • Now, we can set background of ChronoMeter dynamically, in MainActivity.kt file, as –

Here, we used setBackgroundColor() method to set background color in chronoMeter.

Set Visibility of ChronoMeter

We can set visibility of ChronoMeter programmatically as –

Here, we have set visibility of ChronoMeter using chronoMeter.visibility attribute. Visibility can be of three types – gone, visible and invisible.
Learn to Set Visibility of ChronoMeter Using XML Attribute

Set Text of ChronoMeter

Follow steps below to set text of ChronoMeter programmatically –

  • If there is no strings.xml file, create strings.xml file in res/values folder. Then, add below code in it –
  • Now, we can set text of ChronoMeter dynamically, in MainActivity.kt file, as –

Here, we used chronoMeter.text to set text in chronoMeter.

Set Color of Text of ChronoMeter

Follow steps below to set color of text of ChronoMeter programmatically in Kotlin –

  • If there is no colors.xml file, create colors.xml file in res/values folder. Then, add below code in it –
  • Now, we can set color of text of ChronoMeter dynamically, in MainActivity.kt file, as –

Here, we used setTextColor() method to set color of ChronoMeter of chronoMeter.

Set Gravity of ChronoMeter

We can set gravity of text of ChronoMeter programmatically in Kotlin as –

Here, we have set gravity of ChronoMeter as center. So, all the text of ChronoMeter will be center aligned.
We can also apply multiple gravity values as –

Here, we have applied multiple gravity values, in Kotlin, to ChronoMeter. In above case, text will be aligned as horizontally centered to bottom.
Learn to Set Margin of ChronoMeter Using XML Attribute

Set Text in Uppercase or Lowercase

Follow steps below to set text in uppercase or lowercase programmatically as –

Set Text in Uppercase

We use chronoMeter.isAllCaps attributes to set text in uppercase or normal. If it is true, text will be set in uppercase.

In Above case, “Hello Tutorialwing” will be set in Uppercase to ChronoMeter. So, text will be “HELLO TUTORIALWING”.
By default, isAllCaps is false. So, whatever is written, text will be set as it is. For example,

Above code will set text, “Hello Tutorialwing”, to ChronoMeter without changing it to Uppercase.

Actually, if isAllCaps is false, text is set as it is. It neither changes to uppercase nor lowercase.

How do we set text in lowercase?
  • In xml file – write all the text in lowercase.
  • In kotlin file – take text as string. Then, convert it in lowercase. Then, set it to chronoMeter.

Set Size of Text in ChronoMeter

Follow steps below to set size of ChronoMeter programmatically using chronoMeter.textSize attribute –

  • Open res/values/dimens.xml file. Then, add below font-size in it –
  • Now, using chronoMeter.textSize attribute, we can set size of text dynamically as –

Set Style (Bold/italic) of Text in ChronoMeter

We can set textStyle of ChronoMeter programmatically as –

In above case, we have set textStyle as bold. So, text of ChronoMeter will be displayed as bold letters.

If we want to preserve previous textStyle too, we can do it as –

Set Letter Spacing of Text in ChronoMeter

Follow steps below to set letter spacing of ChronoMeter programmatically –

  • Open res/values/dimens.xml file. Then, add below dimension in it –
  • We use chronoMeter.letterSpacing attribute to set letter spacing of ChronoMeter as below –

That’s end of tutorial on ChronoMeter Programmatically in Kotlin With Example.

Источник

Читайте также:  F1 vmlite picture in picture virtual android os
Оцените статью