Intereting Posts
Предотвратите ввод ключа в EditText, но покажите текст как многострочный Запустить приложение JavaFX с внешними библиотеками в Android? Spring MVC, Thymeleaf & REST Есть ли у вас шансы сократить время затвора с помощью доступа к NDK для доступа к Android? Запись видео в формате Android с ограничением продолжительности и низким качеством Поделиться Twitter и Facebook на Android и iPhone с помощью Phonegap 2.0.0 Интеграция пользовательских Wrapper Codec в Android Android googleMap Map не отображается, только сетка, иногда Связывание данных курсора с таблицей без списка Атрибут «title» уже был определен, если у него есть зависимости от сюжетов Android 1.0.0 Что эквивалентно ActionSheetIOS в Android? Не удалось передать null для выполнения (); Метод AsyncTask в android 4.0 Можно ли отключить прокрутку на ViewPager Переключение пробных версий и pro с помощью приложений Android в Eclipse: как сделать это менее болезненным? Список сравнения <String >

Цвет ProgressBar

Я хочу установить цветной индикатор Progressbar в моем приложении, так как цвет индикатора по умолчанию имеет значение «Незначительно белый», а «Мое приложение» также имеет белый фон, поэтому он не может быть видимым правильно. Поэтому, пожалуйста, дайте мне решение для этого. Благодарю.

Solutions Collecting From Web of "Цвет ProgressBar"

@Chirag: Я не думаю, что этого будет достаточно? Ваш код, вероятно, установит градиент на заднем плане, но белый счетчик все равно будет здесь.

То, что я сделал, чтобы настроить свой рабочий счетчик, состояло в том, чтобы установить ProgressBar с возможностью рисования фона (изображения или формы). Анимация ProgressBar здесь называется Java.

<ProgressBar android:id="@+id/ProgressBar01" android:layout_width="40px" android:layout_height="40px" style="?android:attr/progressBarStyle" android:indeterminateOnly="false" android:background ="@drawable/spinner_blue_76" /> 

splash_spinner.xml

 <?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="359" android:duration="1000" android:repeatMode="restart" android:repeatCount="infinite" android:interpolator="@android:anim/linear_interpolator"> </rotate> 

LauncherActivity

  ... ProgressBar t = (ProgressBar) findViewById(R.id.ProgressBar01); t.startAnimation(AnimationUtils.loadAnimation(this,R.anim.splash_spinner)); ... 

Spinner_blue_76 (или что-то еще)

Введите описание изображения здесь

Это может быть и неправильный путь, но он работает хорошо. (У меня теперь синий спиннер на моем сером фоне)

Сделайте одно xml-имя файла progress.xml и поместите его в папку res / xml и напишите код ниже в этом XML-файле.

 <?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="360"> <shape android:shape="ring" android:innerRadiusRatio="3" android:thicknessRatio="8" android:useLevel="false"> <size android:width="76dip" android:height="76dip" /> <gradient android:type="sweep" android:useLevel="false" android:startColor="#447a29" android:endColor="#447a29" android:angle="0" /> </shape> </rotate> 

После создания этого xml-файла установите для фона progressbars этот xml.

подобно

 <ProgressBar android:id="@+id/ProgressBar01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background = "@xml/progress"> 

Не правильный ответ, но все же я сделал это: Чтобы получить черный ProgressBar, используйте один из обратных стилей:

 <ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/> <ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/> <ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/> 

Для этого вам нужно иметь минимум Android SDK уровня 4 (Android 1.6).

Для горизонтального стиля ProgressBar я использую:

  import android.widget.ProgressBar; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.ClipDrawable; import android.view.Gravity; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; public void setColours(ProgressBar progressBar, int bgCol1, int bgCol2, int fg1Col1, int fg1Col2, int value1, int fg2Col1, int fg2Col2, int value2) { //If solid colours are required for an element, then set //that elements Col1 param s the same as its Col2 param //(eg fg1Col1 == fg1Col2). //fgGradDirection and/or bgGradDirection could be parameters //if you require other gradient directions eg LEFT_RIGHT. GradientDrawable.Orientation fgGradDirection = GradientDrawable.Orientation.TOP_BOTTOM; GradientDrawable.Orientation bgGradDirection = GradientDrawable.Orientation.TOP_BOTTOM; //Background GradientDrawable bgGradDrawable = new GradientDrawable( bgGradDirection, new int[]{bgCol1, bgCol2}); bgGradDrawable.setShape(GradientDrawable.RECTANGLE); bgGradDrawable.setCornerRadius(5); ClipDrawable bgclip = new ClipDrawable( bgGradDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL); bgclip.setLevel(10000); //SecondaryProgress GradientDrawable fg2GradDrawable = new GradientDrawable( fgGradDirection, new int[]{fg2Col1, fg2Col2}); fg2GradDrawable.setShape(GradientDrawable.RECTANGLE); fg2GradDrawable.setCornerRadius(5); ClipDrawable fg2clip = new ClipDrawable( fg2GradDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL); //Progress GradientDrawable fg1GradDrawable = new GradientDrawable( fgGradDirection, new int[]{fg1Col1, fg1Col2}); fg1GradDrawable.setShape(GradientDrawable.RECTANGLE); fg1GradDrawable.setCornerRadius(5); ClipDrawable fg1clip = new ClipDrawable( fg1GradDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL); //Setup LayerDrawable and assign to progressBar Drawable[] progressDrawables = {bgclip, fg2clip, fg1clip}; LayerDrawable progressLayerDrawable = new LayerDrawable(progressDrawables); progressLayerDrawable.setId(0, android.R.id.background); progressLayerDrawable.setId(1, android.R.id.secondaryProgress); progressLayerDrawable.setId(2, android.R.id.progress); //Copy the existing ProgressDrawable bounds to the new one. Rect bounds = progressBar.getProgressDrawable().getBounds(); progressBar.setProgressDrawable(progressLayerDrawable); progressBar.getProgressDrawable().setBounds(bounds); // setProgress() ignores a change to the same value, so: if (value1 == 0) progressBar.setProgress(1); else progressBar.setProgress(0); progressBar.setProgress(value1); // setSecondaryProgress() ignores a change to the same value, so: if (value2 == 0) progressBar.setSecondaryProgress(1); else progressBar.setSecondaryProgress(0); progressBar.setSecondaryProgress(value2); //now force a redraw progressBar.invalidate(); } 

Пример вызова:

  setColours(myProgressBar, 0xff303030, //bgCol1 grey 0xff909090, //bgCol2 lighter grey 0xff0000FF, //fg1Col1 blue 0xffFFFFFF, //fg1Col2 white 50, //value1 0xffFF0000, //fg2Col1 red 0xffFFFFFF, //fg2Col2 white 75); //value2 

Если вам не нужен «вторичный прогресс», просто установите значение2 в значение1.