9

XML で作成したものを持っActivityています。その背景を、描画可能なフォルダーにある背景画像に設定しました。

同じアクティビティでViewPager、ビュー間を前後にスワイプできるように を作成しました。内のすべてのビューにViewPagerは 1 つの画像が含まれます。

左または右にスワイプするたびに、トランジションが非常に遅くなります。

背景画像を白(#fff)に設定して削除してみましたが、ラグはすべてなくなりました。それは完璧に機能しました!問題は、アプリケーションにその背景が必要なことです。

背景画像などを最適化して、スワイプが再びスムーズになるようにする方法はありますか? 現在、ラグのために使用するにはイライラしすぎています。

また、画像を小さなサイズにトリミングしてから、画面全体に引き伸ばしてみましたが、パフォーマンスの向上は見られませんでした. また、にあるのは画像の障害ではありませんViewPager。代わりに TextViews でテストしたところ、同じ遅延がありました。

4

3 に答える 3

16

私はいくつかの検索の後でそれを自分で理解しました、私はこの問題に遭遇する他の人のためにここに答えを残します。

どうやらAndroidは画像が引き伸ばされたときに背景をレンダリングするのに多くの問題を抱えています。少なくともAndroid3.2を実行しているGalaxyTab10.1ではそうです。

私が使用していた背景画像は木の床の写真でした。同じ板が繰り返されるパターンであるため、画像を1440x1050から約350x500に切り詰めることができました。この画像を画面全体に広げて背景として使用すると、パフォーマンスが大幅に低下しました。ただし、左上隅に単一の画像として表示する場合は、問題なく機能しました。

ここで説明する方法を使用して、画像を引き伸ばすのではなく、画面全体に繰り返すことができました。驚いたことに、余分なストレスがまったくなく、移行が非常にスムーズに進んだことに気づきました。

だからここにあります、これが同じパフォーマンスの問題で他の人を助けることを願っています!

于 2012-04-05T09:47:16.557 に答える
15

後年の別の解決策: ドローアブルを適切なフォルダーに配置する必要があります。drawable フォルダーに background.png がありましたが、ストレッチに苦労しているため遅れました。携帯電話にそのようなパターンがないため、反復可能を使用できませんでした。

しかし、描画可能な背景を drawable-xhdpi に配置すると、まったく遅延なく動作しました。したがって、将来の参考のために、これで問題が解決する可能性もあります。自己解決するこの質問を参照してください: ViewPager really slow on Samsung S4

于 2014-11-03T11:27:03.503 に答える
2

このトリックは、ポケットベルでスワイプするときに非常に役立ちます。これは、ハードウェア アクセラレーションに基づいています。

       viewPager.setOnPageChangeListener(new OnPageChangeListener() {
                @Override
                public void onPageScrollStateChanged(int scrollState) {
                    if (scrollState != ViewPager.SCROLL_STATE_IDLE) {
                        final int childCount = viewPager.getChildCount();
                        for (int i = 0; i < childCount; i++)
                            viewPager.getChildAt(i).setLayerType(View.LAYER_TYPE_NONE, null);
                    }
                }

          ....
});

それが役立つことを願っています。

于 2016-03-08T10:23:19.237 に答える