1

我使用以下示例创建聚光灯着色器:http ://www.curious-creature.org/2012/12/13/android-recipe-2-fun-with-shaders/

它工作得很好,我使用聚光灯,HorizontalScrollView现在我必须HorizontalScrollView在移动遮罩的同时滚动,我不知道如何让它以良好的性能工作。具有HorizontalScrollView大约 5 倍屏幕宽度的内容,而Shader位图只有一个屏幕宽度。当滚动操作过于繁重并最终导致内存崩溃时,再次设置它。

谢谢。

下图是为了演示我的设置。我有 A 和 B 堆叠在FrameLayout. A 移动聚光灯 B 滚动内容。那么A能否以某种方式将聚光灯作为其背景中的“透明洞”来吸引眼球?A 是Fragment同时移动聚光灯和滚动 B 的寻呼机ScrollView

在此处输入图像描述

4

1 回答 1

0

由于您没有发布任何正在使用的代码,因此很难帮助您提高性能,但我有两个建议:

你写“当滚动操作太繁重并最终导致内存崩溃时再次设置它”。我假设您Bitmap有时正在重新加载。这不是一个好主意,因为它会导致您描述的问题。而是只创建一次并使用各种位图方法进行转换。

其次,如果你在 中没有非常高级的内容ScrollView,可以考虑将滚动内容与聚光灯效果结合在 a 中SurfaceView,并在 Canvas 上手动绘制所有内容。

最后一点,您还写道,您正在使用 aFragmentPager来移动聚光灯。这似乎不是最优化的方式,请考虑是否必须以这种方式达到您想要的结果。

于 2013-03-08T14:05:41.780 回答