背景
我有一些高质量的图像,我希望在它们之间进行一些转换,比如在演示中。
问题
由于Android有很多屏幕类型,对于"演示"的每个"帧",我希望将图像放大到特定的区域/角落(如果需要(,并在某个方向上缓慢自动滚动(取决于我放大的位置(。
这样的事情发生在一些网站和显示图片库的屏幕保护程序上。
这意味着在某些屏幕中,只显示图像的一部分,而其他部分则会在滚动时显示出来。
每次慢速滚动后,我都会切换到下一个图像并执行相同的过程。
我尝试过的
我找不到这个功能的名称,因此我不知道在哪里可以找到它。
示例
图像被缩放到左上角,然后慢慢滚动到右下角。
问题
有没有一种方法可以使用API实现它?也许这份工作有图书馆?
当然,无论图像质量如何,解决方案都不能使用太多内存。
好吧,我发现了一个名为NotBoringActionBar的不错的项目,它具有与我所要求的相同的图像交换效果。
负责此操作的类称为"KenBurnsView.java"。
原始库是KenBurnsView。
编辑:请注意,这在动态创建的位图中不太好用,我已经在这里发布了这方面的内容。
我还没有尝试过,但这里有一个想法-您可以通过编程放大ImageView的特定部分,并定期放大线程可以提示的其他部分。
有关缩放实现的详细信息,请参阅此答案
示例:
首先放大左上角。
每隔200毫秒左右就会有一个线程运行并通知你
收到通知后,您会再次调用缩放功能,但这次会稍微降低,以便在设置动画时向下滚动。
继续,直到到达右下角。
希望这能有所帮助。