私はAndroid「スライドショー」機能を備えているはずのアプリを書いています。ピカソに基づいて この素敵なライブラリ を見つけました。私が欲しかったもの、そしてそれはほとんどの場合うまくいきました。
問題は、画像がスライドに読み込まれないことがあることですImageView
...下のスクリーンショットにあるように、「黒いキャンバス」しか表示されません。
ドローアブルのローカルリソースから画像を読み込んでいます。ポートレートモードで発生することもあれば、ランドスケープモードで発生することもあります。どの画像を使用するかは関係ありません。「黒さ」が発生することもあります。
編集:
私はAndroid 5.0.2および4.4.2-を使用しています。4.4.2では発生しないようです。5.0.2。
これは、Moto X2014でAndroid 5.1で発生しました。
私がロードしようとしている画像は、900x445の解像度でディスク上に45KBあります。
提案されているようにレイアウト四角形をオンにしました。結果は次のとおりです。
そして、それはスクロールでそのように保ちます。
そして時々、それは黒の代わりに白になります(または白、そして黒)。
私が試した他の何か:ファイルをそのフォルダーからres/drawable
に変更したとき、私のドローアブルはres/drawable-xxxhdpi
フォルダーにありました。 5.0.2デバイス。 wtf ???
スライドに複数の画像をロードするために、さまざまな画像を試しました。さらに、ライブラリでピカソをグライドに変更する このプルリクエスト も試しました。何も機能していないようで、エラーはランダムに見えます。
ローカルストレージ上の実際のドローアブルの代わりにWebからのURLを使用しようとすると、機能しました。まったく同じ画像で。
画像の読み込み方法は次のとおりです。
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>
私はフォローしています チュートリアル ライブラリから wikiページ 。また、LogCatにエラーがスローされていないため、これを解決するのが非常に困難になっています。
何か案は?
Drawable-nodpiという名前のリソースフォルダーをそのフォルダーに作成し、別のフォルダーやドローアブルフォルダーの代わりに画像を配置します。
このライブラリは、初めて使用したときは問題なく動作します。本当に素敵な図書館です。
最初
SliderLayoutは何からも参照されていません。ここで魔法が起こります。 xmlレイアウトを作成し、SliderLayoutで参照します。その後、startAutoScroll()を呼び出し、onPause()でstopAutoScroll()を呼び出すことを忘れないでください。
https://github.com/daimajia/AndroidImageSlider/wiki/Start-Using
上記のリンクは基本的にあなたが必要とするすべてです。
秒
問題は、scrollView内にあることでもある可能性があります。スクロールコールバックが誤動作している可能性があります。
シンプルなレイアウトを作成し、シンプルなスライダーから始めて、カスタマイズを進めていきます。
幸運を。
ViewPager
とImageView
を使用して、画像URIの配列をアダプターに渡してみましたか?自分で実装すれば、回避/デバッグがはるかにうまくいくと思います。