কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে কাস্টম প্রগ্রেস বার তৈরির পদ্ধতি

ড্রয়েবল XML ব্যবহার করে সার্কুলার প্রগ্রেস বার কাস্টমাইজ করুন

এই উদাহরণটি দেখায় কিভাবে একটি রিং-শেপ ড্রয়েবল তৈরি করে ProgressBar-কে কাস্টম স্টাইল দেওয়া যায়। এটি ম্যাটেরিয়াল ডিজাইন সার্কুলার প্রগ্রেসের মতো দেখাবে।

ধাপ ১: প্রজেক্ট তৈরি

ধাপ ২: লেআউট (ConstraintLayout)

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <ProgressBar
        android:layout_width="150dp"
        android:layout_height="150dp"
        style="?android:progressBarStyleLarge"
        android:progress="50"
        android:id="@+id/progressBar"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:progressDrawable="@drawable/circle"/>
</androidx.constraintlayout.widget.ConstraintLayout>

ধাপ ৩: ড্রয়েবল রিসোর্স (circle.xml)

res/drawable/circle.xml তৈরি করুন:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="https://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadiusRatio="2.5"
    android:thickness="4dp"
    android:useLevel="true">
    <solid android:color="@color/colorAccent" />
</shape>

Shape атриবিউট ব্যাখ্যা

অ্যাট্রিবিউটবিবরণ
shape="ring"রিং আকার (গোলাকার রিং)
innerRadiusRatioবহিরব্যাসের অনুপাতে অন্তর্ব্যাস (২.৫ মানে ব্যাসের ১/২.৫)
thicknessরিংয়ের মোটা (dp-এ)
useLevel="true"প্রগ্রেস লেভেল অনুযায়ী ড্র করার অনুমতি (অবশ্য true)

ধাপ ৪: MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {
    ProgressBar progressBar;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        progressBar = findViewById(R.id.progressBar);
        progressBar.setMax(100);
        progressBar.setProgress(20);
    }
}

এনিমেটেড প্রগ্রেস (বোনাস)

ObjectAnimator animator = ObjectAnimator.ofInt(progressBar, "progress", 0, 100);
animator.setDuration(3000);
animator.setInterpolator(new DecelerateInterpolator());
animator.start();

Indeterminate মোড (লোডিং স্পিনার)

নির্দিষ্ট প্রগ্রেস না থাকলে android:indeterminate="true" ব্যবহার করুন। কাস্টম ইন্ডিটারমিনেট ড্রয়েবল জন্য android:indeterminateDrawable সেট করুন।

Material ProgressBar (সেরা পদ্ধতি)

implementation "com.google.android.material:material:1.10.0"

<com.google.android.material.progressindicator.CircularProgressIndicator/> - বিল্ট-ইন এনিমেশন, কালার ট্রানজিশন, এবং এক্সেসিবিলিটি সাপোর্ট।

Linear ProgressBar কাস্টম

<shape android:shape="rectangle">
    <corners android:radius="4dp"/>
    <solid android:color="@color/track_color"/>
</shape>
// progressDrawable-এ সেট করুন
  1. অ্যান্ড্রয়েডে স্ট্যাটাস বার কীভাবে লুকাবেন?

  2. কাস্টম অ্যান্ড্রয়েড ROM ইনস্টল করার ১২ কারণ

  3. টকিন্টার পাইথনে ডাউনলোড প্রগ্রেস বার তৈরি করা

  4. অ্যান্ড্রয়েডে কাস্টম জেসচার যোগ করার পদ্ধতি