usar libreria glide example ejemplo developer android imageview android-drawable picasso android-glide

example - libreria glide android



Obtención de ImageView negro con Picasso y Glide (3)

¿Ha intentado usar ViewPager con ImageView y pasar una matriz de URI de imagen al adaptador? Creo que podrás evitar / depurar mucho mejor si lo implementas tú mismo.

El problema

Estoy escribiendo una aplicación para Android que se supone que tiene una función de "Presentación de diapositivas". Encontré esta bonita biblioteca , basada en Picasso, que hace exactamente lo que quería, y funcionó bien la mayoría de las veces.

El problema es que, a veces, mis imágenes no se cargan en la diapositiva ImageView ... Solo muestra un "lienzo negro" como se puede ver en la captura de pantalla a continuación.

Estoy cargando la imagen de un recurso local de mis dibujables. A veces sucede en el modo Retrato, a veces en modo Paisaje. No importa qué imagen use, a veces esa "negritud" ocurre.

EDITAR:

  • Estoy usando Android 5.0.2 y 4.4.2 - No parece suceder en 4.4.2. Solo en 5.0.2.

  • Sucedió en un Moto X 2014 con Android 5.1.

  • Las imágenes que intento cargar tienen 45 KB en el disco con una resolución de 900 x 445.

  • He activado las recetas de diseño según lo sugerido, y estos fueron los resultados:

Y sigue así en scroll.

Y a veces, se pone blanco en lugar de negro (o blanco, luego negro).

Otra cosa que probé: mis dibujables estaban ubicados en la carpeta res/drawable , cuando cambié los archivos de esa carpeta a res/drawable-xxxhdpi el control deslizante funcionaba en el dispositivo 5.0.2. ¿wtf?

¿Qué he intentado hasta ahora?

He probado diferentes imágenes, para cargar varias imágenes en la diapositiva, e incluso esta solicitud de extracción que cambia Picasso a Glide en la lib. Nada parece funcionar y el error parece aleatorio.

Una vez que traté de utilizar las URL de la web en lugar de los objetos dibujables en el almacenamiento local, funcionó. Con las mismas imágenes exactas.

Así es como estoy cargando las imágenes:

Fragment.java

private SliderLayout slider; private PagerIndicator indicator; // ... private void setupSlider() { HashMap<String,Integer> file_maps = new HashMap<>(); file_maps.put("Blah",R.drawable.banner_1); file_maps.put("Bleh",R.drawable.banner_2); file_maps.put("Blih",R.drawable.banner_3); file_maps.put("Bloh",R.drawable.banner_4); for (String name : file_maps.keySet()) { DefaultSliderView dsv = new DefaultSliderView(getActivity()); dsv.description(name) .image(file_maps.get(name)) .error(R.drawable.banner_error) .empty(R.drawable.empty) .setScaleType(BaseSliderView.ScaleType.Fit) .setOnSliderClickListener(this); //add your extra information dsv.bundle(new Bundle()); dsv.getBundle() .putString("extra",name); slider.addSlider(dsv); } slider.setPresetTransformer(SliderLayout.Transformer.Default); slider.setCustomIndicator(indicator); slider.setCustomAnimation(new DescriptionAnimation()); slider.setDuration(4000); slider.addOnPageChangeListener(this); }

fragment.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:custom="http://schemas.android.com/apk/res-auto" tools:context="com.example.fragments.Fragment" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sv_main"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/rl_main"> <com.daimajia.slider.library.SliderLayout android:id="@+id/slider" android:layout_width="match_parent" android:layout_height="200dp" /> <com.daimajia.slider.library.Indicators.PagerIndicator android:id="@+id/custom_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_below="@+id/slider" custom:shape="oval" custom:selected_color="#00BFA5" custom:unselected_color="#55333333" custom:selected_padding_left="@dimen/spacing_medium" custom:selected_padding_right="@dimen/spacing_medium" custom:selected_padding_top="3dp" custom:selected_padding_bottom="@dimen/spacing_small" custom:unselected_padding_left="@dimen/spacing_medium" custom:unselected_padding_right="@dimen/spacing_medium" custom:unselected_padding_top="@dimen/spacing_small" custom:unselected_padding_bottom="4dp" custom:selected_width="@dimen/spacing_medium" custom:selected_height="@dimen/spacing_medium" custom:unselected_width="6dp" custom:unselected_height="6dp" /> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/custom_indicator" android:id="@+id/ll_main_body"> </LinearLayout> </RelativeLayout> </ScrollView> <!-- Other stuff --> </RelativeLayout>

Estoy siguiendo el tutorial de la página wiki de libs. Y no se generan errores en el LogCat, lo que hace que sea mucho más difícil de resolver.

¿Algunas ideas?


Crear una Carpeta de Recursos Nombrada drawable-nodpi en esa carpeta ponga sus imágenes en lugar de carpetas diferentes o carpetas dibujables.


Esta biblioteca funciona bien para mí, la primera vez que la usé. Es una biblioteca realmente bonita.

primero

SliderLayout no está siendo referenciado por nada. Ahí es donde sucede la magia. Haz un diseño xml y haz referencia a él mediante SliderLayout. Después de eso, no te olvides de llamar a startAutoScroll () y onPause () stopAutoScroll ().

https://github.com/daimajia/AndroidImageSlider/wiki/Start-Using

El enlace de arriba es básicamente todo lo que necesitas.

Segundo

El problema también podría ser que está dentro de un scrollView. Las devoluciones de llamada de desplazamiento pueden estar comportándose mal.

Haga un diseño simple, comience con un simple control deslizante y aumente las personalizaciones.

Buena suerte.