Android compte à Rebours de la Circulaire de la Barre de Progression ne correspond pas avec minuterie
Salut quelqu'un peut m'aider sur mon petit projet, s'il vous plaît, j'ai suivi ce Tutoriel et je suis arrivé à la partie où j'ai insérer 1 Minute dans l'EditText la Barre de Progression fonctionne très bien 1 Progrès accomplis par la sec, mais quand je l'ai mis dans plus de 1 Minute dans l'EditText la Barre de Progression ne fonctionne pas. Il ne va pas vers le bas s'il vous plaît aider?
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"
android:background="#086A87">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp" >
<EditText
android:id="@+id/edtTimerValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="minutes"
android:inputType="phone" />
<Button
android:id="@+id/btnStartTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="2"
android:gravity="center"
android:text="Start Timer"
android:background="@drawable/custombuttongreen"
android:textColor="#fff"/>
<Button
android:id="@+id/btnStopTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="2"
android:gravity="center"
android:text="Stop Timer"
android:visibility="gone"
android:background="@drawable/custombuttongreen"
android:textColor="#fff"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="350dip"
android:layout_height="350dip"
android:indeterminate="false"
android:progressDrawable="@drawable/circle"
android:background="@drawable/circle_shape"
style="?android:attr/progressBarStyleHorizontal"
android:max="60"
android:progress="0" />
<TextView
android:id="@+id/tvTimeCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="00:00"
android:textColor="#fff"
android:textSize="60dip"/>
</RelativeLayout>
MainActivity.java
package com.tag.countdowntimer;
import com.tag.countdowntimer.R.drawable;
import android.R.color;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
int i=-1;
ProgressBar mProgressBar;
private Button buttonStartTime, buttonStopTime;
private EditText edtTimerValue;
private TextView textViewShowTime; //will show the time
private CountDownTimer countDownTimer; //built in android class
//CountDownTimer
private long totalTimeCountInMilliseconds; //total count down time in
//milliseconds
private long timeBlinkInMilliseconds; //start time of start blinking
private boolean blink; //controls the blinking .. on and off
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonStartTime = (Button) findViewById(R.id.btnStartTime);
buttonStopTime = (Button) findViewById(R.id.btnStopTime);
textViewShowTime = (TextView) findViewById(R.id.tvTimeCount);
edtTimerValue = (EditText) findViewById(R.id.edtTimerValue);
buttonStartTime.setOnClickListener(this);
buttonStopTime.setOnClickListener(this);
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btnStartTime) {
textViewShowTime.setTextAppearance(getApplicationContext(),
R.style.normalText);
setTimer();
//Hides the Keyboard
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edtTimerValue.getWindowToken(), 0);
buttonStopTime.setVisibility(View.VISIBLE);
buttonStartTime.setVisibility(View.GONE);
edtTimerValue.setVisibility(View.GONE);
edtTimerValue.setText("");
//textViewShowTime.setTextColor(color.white);
//textViewShowTime.getContext();
startTimer();
} else if (v.getId() == R.id.btnStopTime) {
countDownTimer.cancel();
buttonStartTime.setVisibility(View.VISIBLE);
buttonStopTime.setVisibility(View.GONE);
edtTimerValue.setVisibility(View.VISIBLE);
}
}
private void setTimer() {
int time = 0;
if (!edtTimerValue.getText().toString().equals("")) {
time = Integer.parseInt(edtTimerValue.getText().toString());
} else
Toast.makeText(MainActivity.this, "Please Enter Minutes...",
Toast.LENGTH_LONG).show();
totalTimeCountInMilliseconds = 60 * time * 1000;
timeBlinkInMilliseconds = 30 * 1000;
}
private void startTimer() {
countDownTimer = new CountDownTimer(totalTimeCountInMilliseconds, 500) {
//500 means, onTick function will be called at every 500
//milliseconds
@Override
public void onTick(long leftTimeInMilliseconds) {
long seconds = leftTimeInMilliseconds / 1000;
//i++;
//Setting the Progress Bar to decrease wih the timer
mProgressBar.setProgress((int) (leftTimeInMilliseconds / 1000));
textViewShowTime.setTextAppearance(getApplicationContext(),
R.style.normalColor);
if (leftTimeInMilliseconds < timeBlinkInMilliseconds) {
textViewShowTime.setTextAppearance(getApplicationContext(),
R.style.blinkText);
//change the style of the textview .. giving a red
//alert style
if (blink) {
textViewShowTime.setVisibility(View.VISIBLE);
//if blink is true, textview will be visible
} else {
textViewShowTime.setVisibility(View.INVISIBLE);
}
blink = !blink; //toggle the value of blink
}
textViewShowTime.setText(String.format("%02d", seconds / 60)
+ ":" + String.format("%02d", seconds % 60));
//format the textview to show the easily readable format
}
@Override
public void onFinish() {
//this function will be called when the timecount is finished
textViewShowTime.setText("Time up!");
textViewShowTime.setVisibility(View.VISIBLE);
buttonStartTime.setVisibility(View.VISIBLE);
buttonStopTime.setVisibility(View.GONE);
edtTimerValue.setVisibility(View.VISIBLE);
}
}.start();
}
}
L'État Normal de la Minuterie
Lorsque j'entre 1 Minute
Quand Je Suis Entré À 3 Minutes
Barre de progression n'est pas le compte à rebours
Pouvez-vous me donner un lien pour le tutoriel s'il vous plaît?
OriginalL'auteur Nazmul Hasan | 2014-12-24
Vous devez vous connecter pour publier un commentaire.
Dans votre main.xml pour ProgressBar vous avez mentionné une valeur maximum de 60. De sorte que la barre de progression prend une valeur maximum de 60 et votre barre de progression commence à diminuer à partir de 60 secondes à partir.
Plutôt que de travailler votre barre de Progression correctement tout moment, dans votre "setTimer()" méthode d'écriture de la ligne ci-dessous.
Dans setTimer() la méthode la première ligne est la déclaration de la variable de temps...une fois que l'enregistrement où vous l'écriture de la déclaration. Mieux d'écrire à la fin de la méthode.
Je ne pouvais pas trouver, mais j'ai essayé ce privé pTime; mProgressBar.setMax((int) pTime); et cela a fonctionné, mais il clignote la valeur par défaut MaxProgress qui est de 60 ans pour une seconde, puis le calcul prend effet mais il n'est pas exacte, si bien que je ne pense pas que c'est
Vous avez affiché le code que vous avez écrit ou pas?? Une fois votre code en setTimer() la méthode()!!!!????
Je l'ai eu, je pense que ça fonctionne, comment pourrais-je ajouter du son, il onFinish Méthode? et de faire de la progressbar flass rouge et je vous remercie pour votre aide, je l'apprécie
OriginalL'auteur Chandrakanth