Google Glass GDK: ¿Indicador de progreso?
google-glass google-gdk (8)
Usando el GDK (o de alguna otra manera), ¿hay una manera de mostrar un indicador de progreso similar al que se muestra cuando se conecta a una red WiFi en un Glass? (las líneas "giratorias" en la parte inferior de la pantalla, algo así como al final de este video: https://www.youtube.com/watch?v=g3ncmeGaKN0 )
¡Gracias!
El GDK anula los temas de algunos widgets automáticamente para proporcionar una apariencia de cristal adecuada, como TextView
. Para los widgets que aún no tienen esa temática, presente un problema aquí para que podamos rastrearlo.
Esto se acerca bastante, pero el color está apagado (azul / verde azulado / lo que sea en lugar de blanco).
style="?android:attr/progressBarStyleHorizontal"
Muestra (a través de 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" />
Sin embargo, definitivamente no he descubierto cómo reemplazar ese color.
Google resuelve este problema con Slider (componentes de UX globales) https://developers.google.com/glass/develop/gdk/slider
Hemos tenido un problema similar y hemos encontrado un enfoque híbrido que funciona para nosotros. Utilizamos la barra de progreso estándar @patridge mencionada en una publicación anterior y aplicamos los estilos Holo generados proporcionados por Android Holo Colors .
Pudimos generar imágenes, animaciones, capas y estilos de barra de progreso en blanco que se parecen mucho a la versión incorporada en GDK. Puede aumentar la altura de la barra para que coincida con el GDK editando el tamaño de las imágenes png generadas por Holo Color.
Necesitará los archivos generados incluidos en su proyecto, pero este es el aspecto que tendrá nuestro tema después:
<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>
Sé que es súper tedioso, pero nos lleva allí mientras se completa la presentación aceptada de @giladgo a los desarrolladores de Glass para proporcionar una barra de progreso de GDK.
Reuní la respuesta anterior para crear un diseño general para las actividades de mi cargador de listas de tarjetas. Aquí está el archivo de diseño 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>
Luego, en onCreate, obtengo la barra de progreso y la coloco:
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);
Más adelante, en mi devolución de llamada del cargador, oculto la barra de progreso y activo la vista de desplazamiento de la tarjeta:
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
if (loader.getId() == mLoaderId) {
mAdapter.swapCursor(data);
mProgressBar.setVisibility(View.GONE);
mCardScrollView.activate();
}
}
Esto parece funcionar bien como un paradigma para manejar varios json cargando en una lista de tarjetas en el GDK.
Sé que llego tarde pero aquí está mi versión :)
https://github.com/prt2121/glass-gdk-progressbar
añadiendo a tu proyecto en el archivo gradle
compile ''com.github.prt2121:ProgressBar:1.0@aar''
captura de pantalla:
cambio de color
app:progress_color="@android:color/holo_blue_bright"
Trate de usar ProgressBar del proyecto zoom-in
.
UPD 04.11.2014:
Google lanzó https://developers.google.com/glass/develop/gdk/slider - componente UX adecuado para esto. Deberías usarlo mejor en lugar del proyecto extraído.
He extraído la Barra de progreso de Google Glass de GlassHome.apk y he creado un proyecto de biblioteca basado en eso: https://github.com/pif/glass-progress-bar
- apoya indeterminado
- apoya el progreso por defecto
El uso se describe en README en el https://github.com/pif/glass-progress-bar .
Y sí, todos siguen esperando un conjunto completo de Glass Views.
Actualización : También extraje MessageDialog. Puedes encontrarlo en la misma biblioteca.