Android:以编程方式在图库小部件中的图像之间制作动画

标签 android image widget gallery

注意:从 Jellybean 开始,画廊小部件已被弃用。 ViewPager应该改用。


我想以编程方式在 Gallery 小部件中的图像之间移动,并带有动画。

我可以使用 setSelection(int position) 方法更改当前显示的图像,但这不会设置动画。然后是 setSelection(int position, bool animate) 但最后的额外 bool 值似乎没有做任何事情。

source of Gallery它似乎可以处理 DPAD 按键,所以我想到的一个解决方法是伪造按键。例如。

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT))

但是由于某种原因我不能让它工作。有人试过这个吗?

我注意到我喜欢使用 moveNext()movePrevious()scrollToChild() 的三个小部件方法都是私有(private)且无法使用。

有谁知道我该怎么做?

最佳答案

只需直接调用画廊的按键处理程序:

public boolean onKeyDown(int keyCode, KeyEvent event)

Gallery gallery = ((Gallery) findViewById(R.id.gallery));

gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, new KeyEvent(0, 0));

一件重要的事情——这个解决方案只有在左边/右边的 child 已经被创建时才有效,这意味着它必须是“可见的”。如果您的图像处于全屏模式 - 考虑将间距设置为 -1 值。

关于Android:以编程方式在图库小部件中的图像之间制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731564/

相关文章:

android - 使用 Android Plot 绘制 JTransform 数据

android - listView 项目在 android 2.3 的滚动中消失

java - 图像存储即服务

html - 与文本左侧的图像链接

python - Django:ImageField 需要文件路径还是实际的图像对象?

javascript - 私有(private) javascript 小部件

jquery - 在初始化之前无法调用 [小部件名称] 上的方法

android - 如何读取 csv 或文本文件并放入列表

python - 更新另一个类中的 kivy 标签文本

android - 在 Android Studio 的单元测试功能中获取 AndroidTestCase 或 InstrumentationTestCase 的上下文