注意:从 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/