Ответ 1
Эта проблема разрешена google с помощью Slider (глобальные компоненты UX) https://developers.google.com/glass/develop/gdk/slider
Используя GDK (или каким-либо другим способом), есть ли способ отображения индикатора прогресса, аналогичного показанному при подключении к сети WiFi на стекле? ( "вращающиеся" линии в нижней части дисплея, вроде как в конце этого видео: https://www.youtube.com/watch?v=g3ncmeGaKN0)
Спасибо!
Эта проблема разрешена google с помощью Slider (глобальные компоненты UX) https://developers.google.com/glass/develop/gdk/slider
UPD 04.11.2014:
Опубликован Google Slider
- компонент UX подходит для этого. Вам лучше использовать его вместо извлеченного проекта.
Я извлек Google Glass Progress Bar из GlassHome.apk и создал проект библиотеки на основе этого: https://github.com/pif/glass-progress-bar
Использование описано в README в репозитории .
И да, все все еще ждут полнофункционального набора Glass Views.
Обновление. Я также извлек MessageDialog. Вы можете найти его в той же библиотеке.
Это довольно близко, но цвет выключен (синий/чирок/что-то вместо белого).
style="?android:attr/progressBarStyleHorizontal"
Пример (через OkGlassFindACat):
<ProgressBar
android:id="@+id/someProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:indeterminate="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" />
Я определенно не понял, как переопределить этот цвет.
Я знаю, что опаздываю, но здесь моя версия:)
https://github.com/prt2121/glass-gdk-progressbar
добавление к вашему проекту в файле gradle
compile 'com.github.prt2121:ProgressBar:[email protected]'
скриншот:
изменение цвета
app:progress_color="@android:color/holo_blue_bright"
GDK автоматически отменяет темы для некоторых виджетов, чтобы обеспечить надлежащий внешний вид Glass, например TextView
. Для виджетов, которые еще не имеют этой темы, напишите здесь проблему, чтобы мы могли ее отслеживать.
Я собрал ответ выше, чтобы создать общий макет для моих действий загрузчика карточного списка. Здесь файл макета card_scroll_with_progress_layout.xml
:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<com.google.android.glass.widget.CardScrollView
android:id="@+id/card_scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ProgressBar
android:id="@+id/progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:indeterminate="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" />
</FrameLayout>
Затем в onCreate я получаю индикатор выполнения и устанавливаю его:
View rootLayout = getLayoutInflater()
.inflate(R.layout.card_scroll_with_progress_layout, null);
mProgressBar = (ProgressBar)rootLayout.findViewById(R.id.progress_bar);
mProgressBar.setVisibility(View.VISIBLE);
mCardScrollView = (CardScrollView)rootLayout
.findViewById(R.id.card_scroll_view);
mCardScrollView.setAdapter(mAdapter);
setContentView(rootLayout);
Позже в моем обратном вызове загрузчика я скрою индикатор выполнения и активирую вид прокрутки карты:
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
if (loader.getId() == mLoaderId) {
mAdapter.swapCursor(data);
mProgressBar.setVisibility(View.GONE);
mCardScrollView.activate();
}
}
Это, похоже, хорошо работает как парадигма для обработки различной загрузки json в список карт в GDK.
У нас была аналогичная проблема, и мы нашли гибридный подход, который работает для нас. Мы используем стандартный индикатор выполнения @patridge, упомянутый в предыдущем посте, и применяем созданные стили Holo, предоставляемые Android Holo Colours.
Мы смогли сгенерировать белые полосы выполнения, изображения, анимацию, слой и стиль, которые очень похожи на встроенную версию GDK. Вы можете увеличить высоту бара, чтобы соответствовать GDK, отредактировав размер изображений, созданных с помощью Holo Color.
Вам понадобятся сгенерированные файлы, включенные в ваш проект, но вот как выглядит наша тема:
<style name="OurGlassTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen">
<item name="android:progressBarStyleHorizontal">@style/ProgressBarGlass</item>
</style>
<style name="ProgressBarGlass" parent="android:Widget.ProgressBar.Horizontal">
<item name="android:progressDrawable">@drawable/glass_progress_horizontal_holo_light</item>
<item name="android:indeterminateDrawable">@drawable/glass_progress_indeterminate_horizontal_holo_light</item>
<item name="android:minHeight">16dip</item>
<item name="android:maxHeight">16dip</item>
</style>
Я знаю, что это очень утомительно, но он доставит нас туда, в то время как @giladgo согласился с представлением разработчикам Glass, чтобы обеспечить готовность GDK Progress Bar.
Попробуйте использовать ProgressBar из проекта zoom-in
.