我使用以下示例创建聚光灯着色器: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。

发布于 2013-03-08 14:05:41
由于您没有发布您正在使用的任何代码,因此很难帮助您提高性能,但我有两个建议:
您可以编写“当滚动操作太重并最终导致内存崩溃时再次设置它”。我假设您有时会重新加载Bitmap。这不是一个好主意,因为它会引起你所描述的问题。相反,只创建一次并使用各种位图方法进行转换。
其次,如果ScrollView中没有非常高级的内容,请考虑将滚动内容与SurfaceView中的聚光灯效果结合起来,并在画布上手动绘制所有内容。
最后,您还会写到您正在使用FragmentPager来移动聚光灯。这似乎不是最理想的方式,考虑一下你想要的结果是否必须以这种方式实现。
https://stackoverflow.com/questions/15158226
复制相似问题