Пользовательский индикатор в android с фоном - PullRequest
0 голосов
/ 10 апреля 2020

Как я могу сделать индикатор прогресса, как это enter image description here

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Здесь я нашел свой ответ

Сначала вам нужно добавить xml нарисованный ресурс с именем progress_bar_background. xml

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    >
    <corners android:radius="18dp" />
    <stroke android:color="@color/transparent" android:width="6dp" />
</shape>

Теперь создайте другой xml файл ресурсов с именем curved_progress_bar. xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="18dp" />
            <solid android:color="@color/transparent" />
<!--            <stroke android:color="@color/transparent" android:width="6dp" />-->
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="18dp" />
                <solid android:color="#FFFFFF" />
            </shape>
        </clip>
    </item>
</layer-list>

и, наконец, в Spla sh активность xml файл вставьте этот код для Progress бар

       <TextView
            android:id="@+id/textView"
            android:layout_centerInParent="true"
            android:layout_centerHorizontal="true"
            android:layout_width="wrap_content"
            android:textColor="@color/white"
            android:textSize="22dp"
            android:textStyle="bold"
            android:fontFamily="@font/symbioarltmedium"
            android:layout_height="wrap_content"
            android:text="80%"/>
        <ProgressBar
            android:layout_marginTop="10dp"
            android:layout_centerHorizontal="true"
            android:layout_below="@+id/textView"
            android:id="@+id/progressBar"
            style="@style/Widget.AppCompat.ProgressBar.Horizontal"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:indeterminate="false"
            android:max="100"
            android:padding="5dp"
            android:progress="1"
            android:background="@drawable/progress_bar_background"
            android:progressDrawable="@drawable/curved_progress_bar"
            />

и здесь Java

private ProgressBar progressBar;
TextView textView;
private int progressStatus = 0;
private Handler handler = new Handler();

progressBar = (ProgressBar) findViewById(R.id.progressBar);
textView = (TextView) findViewById(R.id.textView);


// Start long running operation in a background thread
new Thread(new Runnable() {
    public void run() {
        while (progressStatus < 100) {
            progressStatus += 1;
            // Update the progress bar and display the
            //current value in the text view
            handler.post(new Runnable() {
                public void run() {
                    progressBar.setProgress(progressStatus);
                    textView.setText(progressStatus+"%");
                }
            });
            try {
                // Sleep for 200 milliseconds.
                Thread.sleep(25);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        Intent intent = new Intent(SplashActivity.this, HomeActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        finish();
    }
}).start();

и используйте этот цвет

<color name="transparent">#27EEECEC</color>
0 голосов
/ 10 апреля 2020

это составной вид (TextView + CustomProgressBar)

...