Читая ограниченную документацию, предоставленную Google, у меня возникает ощущение, что можно изменить внешний вид (возможность рисования) ProgressBar / ProgressDialog, просто создав новый стиль и назначив его свойству style свойства ProgressBar. Но я не могу заставить это работать должным образом. Вот что я сделал до сих пор:
Я создал такую форму (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>
затем создал анимацию (mp3.xml) следующим образом:
<?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>
затем создал стиль (attrs.xml) следующим образом:
<?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>
и в моем main.xml я установил такой стиль:
<?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>
Но он по-прежнему показывает те же возможности рисования, что и раньше. Что я делаю не так?
Ответы:
Я использовал следующее для создания настраиваемого индикатора выполнения.
Файл
res/drawable/progress_bar_states.xml
объявляет цвета разных состояний:И код внутри вашего макета xml:
Наслаждайтесь!
источник
ProgressDialog
?У меня возникли проблемы с использованием диалогового окна неопределенного прогресса с решением здесь, после некоторой работы и проб и ошибок я заставил его работать.
Сначала создайте анимацию, которую хотите использовать в диалоге выполнения. В моем случае я использовал 5 изображений.
../res/anim/progress_dialog_icon_drawable_animation.xml:
Где вы хотите показать ProgressDialog:
Это решение действительно простое и сработало для меня, вы можете расширить ProgressDialog и заставить его переопределить возможность рисования внутри, однако это было слишком сложно для того, что мне было нужно, поэтому я не стал этого делать.
источник
Попробуйте установить:
У меня это сработало. Вот также код для progress.xml:
источник
android:drawable=
в теге поворота, а затем удалите форму. Наконец кто-то, кто отвечает на вопрос о вращающейся полосе выполнения.android:toDegrees
можно установить более высокое значение. Установка этого значенияandroid:toDegrees="1080"
увеличит вращение в 3 раза.Ваш стиль должен выглядеть так:
источник
Я делаю ваш код. Я могу работать, но мне нужно изменить два места:
name="android:indeterminateDrawable"
вместо тогоandroid:progressDrawable
изменить имя attrs.xml ---> styles.xml
источник
Настраиваемый прогресс с масштабированием!
источник
Я не уверен, но в этом случае вы все равно можете использовать полностью настроенный AlertDialog, установив отдельный файл макета в диалоговом окне предупреждения и установив анимацию для вашего изображения, используя часть приведенного выше кода, который также должен это делать!
источник
А потом позвони
источник