Java android studio секундомер

Chronometer

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

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

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

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

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

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

 // Kotlin // Если этот код работает, его написал Александр Климов, // а если нет, то не знаю, кто его писал. package ru.alexanderklimov.as40k import android.os.Bundle import android.os.SystemClock import android.widget.Chronometer import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() < private lateinit var chronometer: Chronometer override fun onCreate(savedInstanceState: Bundle?) < super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) chronometer = findViewById(R.id.chronometer) chronometer.setOnChronometerTickListener < val elapsedMillis: Long = (SystemClock.elapsedRealtime() - chronometer.base) if (elapsedMillis >5000 && elapsedMillis < 6000) < val strElapsedMillis = "Прошло больше 5 секунд" Toast.makeText( this, strElapsedMillis, Toast.LENGTH_SHORT ).show() >> startButton.setOnClickListener < chronometer.base = SystemClock.elapsedRealtime() chronometer.start() >stopButton.setOnClickListener < chronometer.stop() >resetButton.setOnClickListener < chronometer.base = SystemClock.elapsedRealtime() >> > 
// Java package ru.alexanderklimov.chronometer; import android.os.Bundle; import android.os.SystemClock; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Chronometer; import android.widget.Toast; public class MainActivity extends AppCompatActivity < private Chronometer mChronometer; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mChronometer = findViewById(R.id.chronometer); mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() < @Override public void onChronometerTick(Chronometer chronometer) < long elapsedMillis = SystemClock.elapsedRealtime() - mChronometer.getBase(); if (elapsedMillis >5000) < String strElapsedMillis = "Прошло больше 5 секунд"; Toast.makeText(getApplicationContext(), strElapsedMillis, Toast.LENGTH_SHORT) .show(); >> >); > public void onStartClick(View view) < mChronometer.setBase(SystemClock.elapsedRealtime()); mChronometer.start(); >public void onStopClick(View view) < mChronometer.stop(); >public void onResetClick(View view) < mChronometer.setBase(SystemClock.elapsedRealtime()); >>

Chronometer

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

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

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

 private Chronometer mChronometer; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mChronometer = findViewById(R.id.chronometer); mChronometer.setCountDown(true); // установим начальное значение mChronometer.setBase(SystemClock.elapsedRealtime() + 1000 * 5); >public void onClick(View view)

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

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

Источник

Руководство Android Chronometer

Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

Читайте также:  Узнать ascii код python

1- Android Chronometer

В Android, Chronometer (Хронометр) это интерфейс компонента симулирующий простой таймер (timer).

Примечание: Компонент Chronometer не имеет наготове в Palette окна дизайна, поэтому вам нужно использовать XML код ниже, чтобы добавить его в интерфейс.

Данный атрибут определяет как данный Chronometer ведет счет, вниз (counts down) или вверх (counts up), его значением является true/false.

По умолчанию, Chronometer отображает время в формате «MM:SS» когда время меньше 1 часа, или «H:MM:SS» если время больше 1 часа. Значение атрибута android:format должно имет формат «Text1 %s Text2», и когда Chronometer отображает время, вы получите строку с форматом «Text1 MM:SS Text2» или «Text1 H:MM:SS Text2».

2- Chronometer Methods

 long getBase() void setBase(long base) String getFormat() void setFormat(String format) boolean isCountDown() void setCountDown(boolean countDown) boolean isTheFinalCountDown() void start() void stop() 

Данный метод полезен только для Chronometer с ведением счета вверх (count up), используется для настройки времени, на которое Chronometer ссылается (Соответствуте значению 00:00).

Параметр base это количество милискунд со времени как система была запущена, включая времяl сна устройства. Если вы используете Android Emulator (Эмулятор Android) время запуска компьютера будет считаться началом координат.

 // Returns milliseconds since system boot, including time spent in sleep. long elapsedRealtime = SystemClock.elapsedRealtime(); // Set the time that the count-up timer is in reference to. this.chronometer.setBase(elapsedRealtime); this.chronometer.start(); 

По умолчанию, Chronometer отображает время по формату «MM:SS» когда время меньше 1 часа, или «H:MM:SS» если время больше 1-го часа. Значение параметра format должно иметь формат «Text1 %s Text2», и когда Chronometer отображает время, вы получите строку с форматом «Text1 MM:SS Text2» или «Text1 H:MM:SS Text2».

Если вы хотите кастомизацию поглубже в отображении формата времени Chronometer, вы можете посмотреть пример в конце данной статьи.

3- Chronometer Events

TODO

4- Example: Chronometer (Count up)

Начнем с простого Chronometer с ведением отсчета вперед (count up), данное приложение можно использовать, чтобы измерять время бегущего атлета.

  • File > New > New Project > Empty Activity
    • Name: ChronometerExample
    • Package name: org.o7planning.chronometerexample
    • Language: Java

     package com.example.chronometerexample; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.Chronometer; import android.widget.TextView; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class MainActivity extends AppCompatActivity < private TextView textViewInfo; private Chronometer chronometer; private Button buttonStart; private Button buttonStop; private Button buttonResetBaseTime; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.textViewInfo = (TextView) findViewById(R.id.textView_info); this.chronometer = (Chronometer)findViewById(R.id.chronometerExample); this.buttonStart = (Button)findViewById(R.id.button_start); this.buttonStop = (Button)findViewById(R.id.button_stop); this.buttonResetBaseTime = (Button)findViewById(R.id.button_resetBaseTime); this.buttonStop.setEnabled(false); this.buttonResetBaseTime.setEnabled(false); this.buttonStart.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < doStart(); >>); this.buttonStop.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < doStop(); >>); this.buttonResetBaseTime.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < doResetBaseTime(); >>); > // @totalMilliseconds: milliseconds since system boot, including time spent in sleep. private void showInfo(long totalMilliseconds) < // Seconds long totalSecs = totalMilliseconds / 1000; // Show Info long hours = totalSecs / 3600; long minutes = (totalSecs % 3600) / 60; long seconds = totalSecs % 60; this.textViewInfo.setText("Base Time: " + totalSecs +" ~ " + hours + " hours " + minutes+" minutes " + seconds + " seconds"); >private void doStart() < // Returns milliseconds since system boot, including time spent in sleep. long elapsedRealtime = SystemClock.elapsedRealtime(); // Set the time that the count-up timer is in reference to. this.chronometer.setBase(elapsedRealtime); this.chronometer.start(); this.showInfo(elapsedRealtime); // this.buttonStart.setEnabled(false); this.buttonStop.setEnabled(true); this.buttonResetBaseTime.setEnabled(true); >private void doStop() < this.chronometer.stop(); // this.buttonStart.setEnabled(true); this.buttonStop.setEnabled(false); this.buttonResetBaseTime.setEnabled(false); >private void doResetBaseTime() < // Returns milliseconds since system boot, including time spent in sleep. long elapsedRealtime = SystemClock.elapsedRealtime(); // Set the time that the count-up timer is in reference to. this.chronometer.setBase(elapsedRealtime); this.showInfo(elapsedRealtime); >> 

    5- Example: Chronometer (Count down)

     package com.example.chronometerexample; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Chronometer; public class MainActivity extends AppCompatActivity < private Button buttonStart; private Chronometer chronometerCountDown; private int counter = 10; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.chronometerCountDown = (Chronometer) findViewById(R.id.chronometerCountDown); this.buttonStart = (Button) findViewById(R.id.button_start); this.chronometerCountDown.setText(counter + ""); this.buttonStart.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < doStart(); >>); // This listener will customize the chronometer text content. // It will show number from 10 to 0 repeatedly. this.chronometerCountDown.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() < @Override public void onChronometerTick(Chronometer chronometer) < onChronometerTickHandler(); >>); > private void onChronometerTickHandler() < if(this.counter < 0) < this.counter = 10; >this.chronometerCountDown.setText(counter + ""); this.counter--; > private void doStart() < this.chronometerCountDown.start(); >> 

    6- Example: Custom Format

     package com.example.chronometerexample; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.Chronometer; public class MainActivity extends AppCompatActivity < private Button buttonStart; private Chronometer chronometerCustomFormat; private int counter = 10; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.chronometerCustomFormat = (Chronometer) findViewById(R.id.chronometer_customFormat); this.chronometerCustomFormat.setText("Please click start!"); this.buttonStart = (Button) findViewById(R.id.button_start); this.buttonStart.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < doStart(); >>); this.chronometerCustomFormat.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() < @Override public void onChronometerTick(Chronometer chronometer) < onChronometerTickHandler(); >>); > private void onChronometerTickHandler() < long delta = SystemClock.elapsedRealtime() - this.chronometerCustomFormat.getBase(); int h = (int) ((delta / 1000) / 3600); int m = (int) (((delta / 1000) / 60) % 60); int s = (int) ((delta / 1000) % 60); String customText = h +" hours " + m +" minutes " + s +" seconds"; this.chronometerCustomFormat.setText(customText); >private void doStart() < long base = SystemClock.elapsedRealtime(); this.chronometerCustomFormat.setBase(base); this.chronometerCustomFormat.start(); >> 

    View more Tutorials:

    Это онлайн курс вне вебсайта o7planning, который мы представляем, он включает бесплатные курсы или курсы со скидкой.

    • Android Beginners Guide To Create A Weather Forecast App
    • * * The Complete Android Oreo(8.1) , N ,M and Java Development
    • Android App & Game Development :Build 6 Android Apps & Games
    • Absolute Java Basics for Android
    • Android and iOS Apps for Your WordPress Blog
    • Unity 3d Game Development — iOS, Android, & Web — Beginners
    • Learn Android Development From Scratch
    • Ultimate Coding Course for Web App and Android Development
    • The Complete Android™ Material Design Course
    • Unity Android Game Development : Build 7 2D & 3D Games
    • Publish Games on Android, iTunes, and Google Play with UE4
    • Advance Android Programming — learning beyond basics
    • The Android Crash Course For Beginners to Advanced
    • Learning Path:Android:Application Development with Android N
    • Android development quick start for beginners
    • Developing High Quality Android Applications
    • Android App Development and Design
    • Become an iOS/Android Game Developer with Unity 2017
    • The Complete Android & Java Developer Course — Build 21 Apps
    • Learning Path: Android: App Development with Android N
    • The Complete Android App Development
    • Create Android & iOS Apps Without Coding
    • Full Stack Mobile Developer course ( iOS 11, and Android O )
    • Develop Your First 2D Game With Unity3D for Android
    • Android Internals and Working with the source

    Источник

    How to make a stopwatch android application with start, pause, stop, reset, laps showing in listview source code download.

    Stopwatch is one of the most important and useful thing for all the athletics and all the persons who is preparing them selves for online examination. In the current world when android is on its top most of persons use android applications to do their personal tasks. So in this tutorial we are going to Android Create Stopwatch Example Tutorial in Android Studio.

    android-project-download-code-button

    Feature in this stop watch :

    1. Start Stopwatch .
    2. Stop Stopwatch .
    3. Pause Stopwatch .
    4. Lap feature with lap showing inside listview just below the buttons.

    Android Create Stopwatch Example Tutorial in Android Studio.

    Code for MainActivity.java file.

    package com.android_examples.stopwatch_android_examplescom; import android.os.Bundle; import android.os.SystemClock; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.os.Handler; import java.util.Arrays; import java.util.List; import java.util.ArrayList; public class MainActivity extends AppCompatActivity < TextView textView ; Button start, pause, reset, lap ; long MillisecondTime, StartTime, TimeBuff, UpdateTime = 0L ; Handler handler; int Seconds, Minutes, MilliSeconds ; ListView listView ; String[] ListElements = new String[] < >; List ListElementsArrayList ; ArrayAdapter adapter ; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)findViewById(R.id.textView); start = (Button)findViewById(R.id.button); pause = (Button)findViewById(R.id.button2); reset = (Button)findViewById(R.id.button3); lap = (Button)findViewById(R.id.button4) ; listView = (ListView)findViewById(R.id.listview1); handler = new Handler() ; ListElementsArrayList = new ArrayList(Arrays.asList(ListElements)); adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, ListElementsArrayList ); listView.setAdapter(adapter); start.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < StartTime = SystemClock.uptimeMillis(); handler.postDelayed(runnable, 0); reset.setEnabled(false); >>); pause.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < TimeBuff += MillisecondTime; handler.removeCallbacks(runnable); reset.setEnabled(true); >>); reset.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < MillisecondTime = 0L ; StartTime = 0L ; TimeBuff = 0L ; UpdateTime = 0L ; Seconds = 0 ; Minutes = 0 ; MilliSeconds = 0 ; textView.setText("00:00:00"); ListElementsArrayList.clear(); adapter.notifyDataSetChanged(); >>); lap.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < ListElementsArrayList.add(textView.getText().toString()); adapter.notifyDataSetChanged(); >>); > public Runnable runnable = new Runnable() < public void run() < MillisecondTime = SystemClock.uptimeMillis() - StartTime; UpdateTime = TimeBuff + MillisecondTime; Seconds = (int) (UpdateTime / 1000); Minutes = Seconds / 60; Seconds = Seconds % 60; MilliSeconds = (int) (UpdateTime % 1000); textView.setText("" + Minutes + ":" + String.format("%02d", Seconds) + ":" + String.format("%03d", MilliSeconds)); handler.postDelayed(this, 0); >>; >

    Code for activity_main.xml layout file.

    Screenshots:

    Android Create Stopwatch Example Tutorial in Android Studio

    android-stopwatch-2

    android-stopwatch-3

    Click here to download Android Create Stopwatch Example Tutorial in Android Studio project with source code.

    Источник

    Make a Chronometer application In Android Studio and Java

    in this tutorial I will show you how to make a chronometer app with a good UI design, in android studio and java, you will some assets that you will find in this article. you will also learn how to make a custom toggle button using Android Studio, So let’s start.

    Image assets

    Style.xml

    we want to change the style and make the app without an action bar because we don’t need it, and change the status bar color

    Colors.xml

    The custom button

    to do this, right-click on your drawable folder choose new and new drawable file, name it start_pause_btn_bg and add this code

    now let’s code the main layout of our activity
    inside your activity_main.xml file add this code

    < androidx.constraintlayout.widget.ConstraintLayout xmlns:android = "http://schemas.android.com/apk/res/android"

    now let’s add the Java Code

    Make a Chronometer application In Android Studio and Java

    Make a Chronometer application In Android Studio and Java Reviewed by Medics on April 02, 2020 Rating: 5

    Источник

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