Проблема
Я пишу приложение для Android, в котором должна быть функция «Слайд-шоу». Я нашел эту замечательную библиотеку, основанную на Picasso, которая делает именно то, что я хотел, и она работает. просто отлично в большинстве случаев.
Проблема в том, что иногда мои изображения не загружаются на слайд ImageView
... Он показывает только «черный холст», как вы можете видеть на скриншоте ниже.
Я загружаю изображение из локального ресурса из моих рисунков. Иногда это происходит в портретном режиме, иногда в ландшафтном. Неважно, какое изображение я использую, иногда возникает эта «чернота».
ИЗМЕНИТЬ:
Я использую Android 5.0.2 и 4.4.2. На 4.4.2 этого не происходит. Только в версии 5.0.2.
Произошло это на Moto X 2014 года с андроидом 5.1.
Изображения, которые я пытаюсь загрузить, имеют размер 45 КБ на диске с разрешением 900x445.
Я включил прямоугольники макета, как было предложено, и вот результаты:
И так держать в прокрутке.
И иногда он становится белым вместо черного (или белым, а затем черным).
Что-то еще, что я пробовал: Мои рисунки были расположены в папке res/drawable
, когда я изменил файлы из этой папки на res/drawable-xxxhdpi
, ползунок работал на устройстве 5.0.2. что???
Что я уже пробовал
Я пробовал разные изображения, загружать несколько изображений на слайд и даже этот запрос на включение, который изменяет Picasso на Glide в библиотеке. Кажется, ничего не работает, и ошибка кажется случайной.
Как только я попытался использовать URL-адреса из Интернета вместо реальных рисунков в локальном хранилище, это сработало. С точно такими же изображениями.
Вот как я загружаю изображения:
Фрагмент.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);
}
фрагмент.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>
Я следую руководству из библиотеки вики-страница. И никаких ошибок в LogCat не выдается, что значительно усложняет решение этой проблемы.
Любые идеи?