Hello world. As i promise about my post that i wanna share about android programming, so today i am gonna show you how to show count down timer on android. Ahaa good, its something like timer in your clock app, but in this post i will show you count down. Its mean timer will be show from top to bottom. Lets do this.
On this case i just one have activity and one layout. This is simple you can learn on this page android developer. this is activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_vertical" android:orientation="vertical" > <TextView android:id="@+id/tvTimeCount" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="00:00" android:textSize="40dp" android:layout_marginTop="30dp"/> </LinearLayout> </LinearLayout>
i got conclusion like this :
1. android:text="00:00" on my text_view, I can set text string " 00 : 00".
2. android:textSize="40dp" and then i can set size 40dp.
3. android:layout_marginTop="30dp" i can set margin top 30dp.
4. and the last this is really important is android:id="@+id/tvTimeCount" . i've id that will call on my java code.
And this one is my main_activity.java .
public class MainActivity extends AppCompatActivity { private TextView textViewShowTime; private CountDownTimer countDownTimer; private long totalTimeCountInMilliseconds; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textViewShowTime = (TextView) findViewById(R.id.tvTimeCount); startTimer(2); } private void startTimer(int time) { totalTimeCountInMilliseconds = 60 * time * 1000; totalTimeCountInMilliseconds = totalTimeCountInMilliseconds + 1000; countDownTimer = new CountDownTimer(totalTimeCountInMilliseconds, 1000) { @Override public void onTick(long leftTimeInMilliseconds) { long seconds = leftTimeInMilliseconds / 1000; String minute = String.format("%02d", seconds / 60); String second = String.format("%02d", seconds % 60); textViewShowTime.setText(minute+" : "+ second); } @Override public void onFinish() { textViewShowTime.setText("Time up!"); } }.start(); } }
i got conclusion that :
1. Declaration your text_view with (TextView) findViewById(R.id.tvTimeCount);
2. Call my function, i set 2. its mean 2 minutes. startTimer(2);
3. totalTimeCountInMilliseconds = 60 * time * 1000; Calculate int to minutes. in android 1 second is 1000 millisecond. Remember!!
4. Call basic function CountDownTimer with parameter our minutes and speed (1000 millisecond normal ).
5. Create logic to get minutes and seconds. with divide and modulus ( / and % ).
6. Show your minutes and seconds with little modification.
textViewShowTime.setText(minute+" : "+ second);
7. Funtion onTick() is time still on workingm but deferent with onFinish() is time is stop. So on this case when time still working my text view, i put time and then when stop i put string "time is up".
Yup this is my little trick about timer on android, i hope this is can help you little bit. And also you can download on my github link. Thanks.
Github link
Graton Hotel Casino & Spa - Mapyro
ReplyDeleteFind the 상주 출장안마 best 시흥 출장안마 value on Graton Hotel septcasino Casino & 서귀포 출장안마 Spa in St. 서귀포 출장마사지 Louis and other St. Louis metropolitan areas. We offer fast payouts so you can save!