Es ist praktisch, die Fortschrittsanzeige zu verwenden, wenn Sie ein Bild laden, wenn Sie die HP des anderen Teilnehmers oder Ihrer eigenen HP usw. anzeigen, wenn Sie den Fortschritt oder das Laden anzeigen. Dieses Mal wollte ich den horizontal langen Fortschrittsbalken verwenden, daher werde ich die Implementierungsmethode kurz zusammenfassen.
Schließlich werde ich das Progressbar-Projekt auf meinem Github veröffentlichen. Bitte benutzen Sie es.
(Hinzugefügt am 15.02.2020) Vielen Dank für das Lesen viel. Ich habe auch den Quellcode für die Kotlin-Version hinzugefügt.
activity_main.xml
<ProgressBar
android:id="@+id/ProgressBarHorizontal"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/progress_bg"
android:max="100"
android:progress="86"
android:progressDrawable="@drawable/progressbar"
/>
Erstellen Sie einen solchen Fortschrittsbalken.
Die horizontal lange Prigressbar kann durch den Teil style ="? Android: attr / progressBarStyleHorizontal "
angegeben werden.
Der Teil, der nicht so angezeigt wird, wie er ist, ist jedoch transparent, sodass ich nicht weiß, wie viel er ist. Daher können Sie es sehen, indem Sie den Hintergrund mit "android: background" grau machen. Machen wir einen Hintergrund.
drawable/progress_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:thickness="5dp"
android:useLevel="false">
<solid android:color="@color/blue_grey_400" />
</shape>
</layer-list>
Es ist eine gute Idee, andere Schaltflächen zu installieren, damit sich der Fortschritt der Leiste ändert, wenn Sie sie drücken. Dieses Mal werde ich es in Form von "android: onClick =" hogeButton "" schreiben. Versuchen Sie, den Balken beim Drücken auf 50% zu setzen. Es gibt keine tiefe Bedeutung lol
java
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
private int percent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
percent = 81; //81 Ausgangszustand%Zu
progressBar = (ProgressBar)findViewById(R.id.ProgressBarHorizontal);
progressBar.setMax(100);
progressBar.setProgress(percent);
progressBar.setMin(0);
}
public void hogeButton(View v){
percent = 50;
progressBar.setProgress(percent);
}
Kotlin
MainActivity.kt
class KotlinMainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var percent = 81
ProgressBarHorizontal.max = 100
ProgressBarHorizontal.progress = percent
ProgressBarHorizontal.min = 0
hogebutton.setOnClickListener {
percent = 0
onHogeProgressChanged(percent)
}
.
.
.
Dies ist abgeschlossen. Hat es funktioniert?
Schließlich verbessert sich die Qualität der App, wenn Sie sie mit Animation verschieben. Deshalb werde ich es implementieren.
Es ist nicht so schwierig.
MainActivity.java
progressBar.setProgress(percent,true);
MainActivity.kt
ProgressBarHorizontal.setProgress(percent,true)
Das ist es. Geben Sie einfach den Wert in () ein und setzen Sie "true" oder "flase".
true
= mit Animation
flash
= keine Animation
Die Animation von setProgress
ist ziemlich schnell, nicht wahr? Sehr schnell.
Ich wollte es selbst spezifizieren, also habe ich eine "ObjectAnimater" -Klasse erstellt, um eine schöne Animation zu erstellen.
MainActivity.java
public void hogeButton(View v){
percent = 50;
onHogeProgressChanged(pacent);
}
private void onHogeProgressChanged(int percentage){
Animator animation = ObjectAnimator.ofInt(progressBar,"progress",percentage);
animation.setDuration(500); // 0.In 5 Sekunden animieren
animation.setInterpolator(new DecelerateInterpolator());
animation.start();
}
MainActivity.kt
hogeButton.setOnClickListener {
percent = 0
onHogeProgressChanged(percent)
}
private fun onHogeProgressChanged(percentage: Int) {
val animation = ObjectAnimator.ofInt(ProgressBarHorizontal, "progress", percentage)
animation.duration = 500
animation.interpolator = DecelerateInterpolator()
animation.start()
}
Es ist so. Durch die Angabe von "DecelerateInterpolator" mit der "setInterpolator" -Methode bewegt sich die Änderungsgeschwindigkeit zunächst schnell und die Animation wird immer langsamer!
Was denken Sie? Ich hoffe, es hilft.
Lass uns ein lustiges Android-Leben haben! ** **.
# Referenzartikel - [ProgressBar | Android Developers](https://developer.android.com/reference/android/widget/ProgressBar) - [DecelerateIntetpolator | Android Developers](https://developer.android.com/reference/android/view/animation/DecelerateInterpolator) - [Ich war ein wenig süchtig nach der Fortschrittsanzeige](http://nyanyoni.hateblo.jp/entry/2018/02/07/022435) - [Fortschritt in Horizontal of ProgressBar anzeigen](http://dorodoro.info/tip/progressbar%E3%81%AEhorizontal%E3%81%A7%E9%80%B2%E6%8D%97%E3% 82% 92% E8% A1% A8% E7% A4% BA% E3% 81% 99% E3% 82% 8B /) - [github](https://github.com/yukiyuki961/ProgressbarApp)