1

次の例を使用してスポットライト シェーダーを作成しました: http://www.curious-creature.org/2012/12/13/android-recipe-2-fun-with-shaders/

それはうまく機能し、スポットライトを使用していますが、マスクを移動すると同時にHorizontalScrollViewスクロールする必要があり、パフォーマンスを向上させる方法がわかりません。HorizontalScrollViewコンテンツのHorizontalScrollView5 倍の画面幅があり、Shaderビットマップは 1 画面幅のみです。スクロールが重すぎる操作で、最終的にメモリクラッシュを引き起こす場合に、すべてを再設定します。

ありがとう。

下の図は、私の設定を示すためのものです。私は A と B を重ねていFrameLayoutます。A がスポットライトを移動している間、B はコンテンツをスクロールします。では、A はどうにかしてスポット ライトを背景の「透明な穴」として描くことができるでしょうか? AはFragmentスポットライトの移動とBのスクロールScrollViewを同時に行うページャーです。

ここに画像の説明を入力

4

1 に答える 1

0

使用しているコードを投稿していないため、パフォーマンスを改善するのは少し難しいですが、2 つの提案があります。

「スクロールが重すぎる操作で、最終的にメモリクラッシュを引き起こす場合は、すべてを再設定します」と書いています。時々リロードしていると思いますBitmap。あなたが説明した問題を引き起こすので、これは良い考えではありません。代わりに、一度だけ作成し、さまざまなビットマップ メソッドを使用して変換します。

次に、 に非常に高度なコンテンツがない場合はScrollView、スクロール コンテンツを のスポットライト効果と組み合わせてSurfaceView、キャンバスにすべてを手動で描画することを検討してください。

最後FragmentPagerに、スポットライトの移動に を使用していると書いています。これは最適な方法とは思えません。必要な結果をこの方法で達成する必要があるかどうかを検討してください。

于 2013-03-08T14:05:41.780 に答える