Membaca dokumentasi terbatas yang disediakan Google, saya merasa bahwa mungkin untuk mengubah tampilan (drawable) dari ProgressBar / ProgressDialog dengan hanya membuat gaya baru dan menempatkannya ke properti gaya ProgressBar. Tapi saya tidak bisa membuat ini berfungsi dengan baik. Inilah yang saya lakukan sejauh ini:
Saya membuat bentuk seperti ini (mp2.xml)
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadiusRatio="4"
android:thicknessRatio="4"
android:useLevel="false">
<size android:width="50dip" android:height="50dip" />
<gradient android:type="sweep" android:useLevel="false" android:startColor="#300000ff" android:centerColor="#500000ff" android:endColor="#ff0000ff" />
</shape>
lalu buat animasi (mp3.xml) seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="30" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="30" android:toDegrees="60" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="60" android:toDegrees="90" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="90" android:toDegrees="120" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="120" android:toDegrees="150" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="150" android:toDegrees="180" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="180" android:toDegrees="210" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="210" android:toDegrees="240" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="240" android:toDegrees="270" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="270" android:toDegrees="300" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="300" android:toDegrees="330" android:repeatCount="1" />
</item>
<item android:duration="70">
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="330" android:toDegrees="360" android:repeatCount="1" />
</item>
</animation-list>
lalu buat gaya (attrs.xml) seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style parent="@android:style/Widget.ProgressBar" name="customProgressBar">
<item name="android:progressDrawable">@anim/mp3</item>
</style>
</resources>
dan di main.xml saya telah mengatur gaya seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:drawingCacheQuality="high">
<ProgressBar android:id="@+id/ProgressBar01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" style="@style/customProgressBar"/>
</LinearLayout>
Namun masih menunjukkan drawable yang sama seperti sebelumnya. Apa yang saya lakukan salah?
Jawaban:
Saya menggunakan berikut ini untuk membuat bilah progres kustom.
File
res/drawable/progress_bar_states.xml
menyatakan warna dari berbagai negara:Dan kode di dalam tata letak Anda xml:
Nikmati!
sumber
ProgressDialog
?Saya mengalami beberapa masalah menggunakan Dialog Kemajuan Tidak Menentu dengan solusinya di sini, setelah beberapa pekerjaan dan coba-coba saya berhasil.
Pertama, buat animasi yang ingin Anda gunakan untuk Progress Dialog. Dalam kasus saya, saya menggunakan 5 gambar.
../res/anim/progress_dialog_icon_drawable_animation.xml:
Di mana Anda ingin menampilkan ProgressDialog:
Solusi ini sangat sederhana dan bekerja untuk saya, Anda dapat memperluas ProgressDialog dan membuatnya menimpa yang dapat digambar secara internal, namun, ini benar-benar terlalu rumit untuk apa yang saya butuhkan sehingga saya tidak melakukannya.
sumber
Coba atur:
Ini berhasil untuk saya. Berikut ini juga kode untuk progress.xml:
sumber
android:drawable=
di tag rotate dan kemudian hapus bentuknya. Akhirnya seseorang yang menjawab pertanyaan progress bar berputar.android:toDegrees
dapat diatur ke nilai yang lebih tinggi. Mengaturnya keandroid:toDegrees="1080"
akan meningkatkan rotasi dalam 3 kali.Gaya Anda akan terlihat seperti ini:
sumber
Kemajuan khusus dengan skala!
sumber
saya melakukan kode Anda. Saya dapat menjalankan tetapi saya perlu memodifikasi dua tempat:
name="android:indeterminateDrawable"
dari padaandroid:progressDrawable
ubah nama attrs.xml ---> styles.xml
sumber
Saya tidak yakin, tetapi dalam hal ini Anda masih dapat menggunakan AlertDialog yang disesuaikan secara lengkap dengan mengatur file tata letak terpisah dalam dialog peringatan dan mengatur animasi untuk tampilan gambar Anda menggunakan bagian dari kode di atas yang juga harus melakukannya!
sumber
Lalu telepon
sumber