Es ist eine Weile her, dass ich damit fest bin. #newbieAndroidDeveloperCircular Fortschrittsbalken, der den gesamten verfügbaren Platz nicht abdeckt
Ich arbeite an einem kreisförmigen Fortschrittsbalken. Das Problem ist, dass der animierende Kreis den verfügbaren Platz der Fortschrittsleiste nicht nutzt.
Der Screenshot sollte das Problem erklären.
Der blaue unvollständige Kreis sind die kreisförmigen Fortschrittsbalken. Gelbes Quadrat ist der Hintergrund des Fortschrittsbalkens. Der rote Pfeil ist ungenutzter Platz, was Anlass zur Sorge gibt.
Die Größe der Fortschrittsanzeige und des Hintergrunds wird über den Code eingestellt. Ich möchte den kreisförmigen Fortschrittsbalken verwenden den gesamten Raum verwenden.
RaceLiveActivity.java
public class RaceLiveActivity extends AppCompatActivity {
Drawable drawable;
String length;
int len, totalDistance;
TextView textViewDistance, textViewTime, textViewSpeed;
FrameLayout raceFrame;
@Override
protected void onCreate(Bundle savedInstanceState) {
totalDistance = 0;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_race_live);
//TO FIND WIDTH AND HEIGHT OF PHONE SCREEN
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
//SET WIDTH AND HEIGHT
raceLiveActivity = this;
ProgressBar prog=(ProgressBar) findViewById(R.id.progressBar1);
FrameLayout.LayoutParams FrameLP1 = new FrameLayout.LayoutParams(displaymetrics.widthPixels-100 , displaymetrics.widthPixels -100);
FrameLP1.gravity = Gravity.CENTER;
prog.setBackgroundColor(Color.YELLOW);
prog.setLayoutParams(FrameLP1);
length = "1";//int1.getStringExtra("length");
len = Integer.valueOf(length);
ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar1);
ObjectAnimator animation = ObjectAnimator.ofInt (progressBar, "progress", 0, 500); // see this max value coming back here, we animale towards that value
animation.setDuration (len * 60000); //in milliseconds
animation.setInterpolator (new DecelerateInterpolator());
animation.start();
}
}
activity_race_live.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/BackLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#FD4C0D">
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RaceProress"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="3"
android:background="#FD4C0D"
>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:indeterminate="false"
android:progressDrawable="@drawable/circular_progress_bar"
android:progress="0"
></ProgressBar>
</FrameLayout>
</LinearLayout>
circular_progress_bar.xml (drawable Form)
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="0">
<shape
android:shape="ring"
android:thickness="3dp"
android:useLevel="true">
<gradient
android:angle="0"
android:endColor="#005B7F"
android:startColor="#005B7F"
android:type="sweep"
android:useLevel="false">
</gradient>
</shape>
</rotate>
Tatsächlich gibt es andere Elemente in dieser Aktivität. Ich habe sie entfernt, um mich auf das Thema zu konzentrieren. Jede Hilfe wird sehr geschätzt.
versuchen, die Fortschrittsleiste hinzuzufügen: Android: layout_margin = "0dp" android: padding = "0dp" – X3Btel
Nein. Es hat nicht geholfen. Keine Änderung der Benutzeroberfläche nach dem Hinzufügen. –