Android:以编程方式在Gallery小部件中的图像之间设置动画

bdl*_*dls 9 android image widget gallery

注意:从Jellybean开始,不推荐使用gallery小部件.一个ViewPager应改为使用.


我想以编程方式在Gallery小部件中使用动画在图像之间移动.

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

Gallery来源中,它似乎可以处理DPAD按键,因此我想到的解决方法是伪造按键.例如.

dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT))
Run Code Online (Sandbox Code Playgroud)

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

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

有谁知道我怎么能这样做?

abu*_*ker 18

只需直接调用图库的按键处理程序:

public boolean onKeyDown(int keyCode, KeyEvent event)
Run Code Online (Sandbox Code Playgroud)

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

gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, new KeyEvent(0, 0));
Run Code Online (Sandbox Code Playgroud)

一个重要的事情 - 这个解决方案只有在左/右的孩子已经创建时才有效,这意味着它必须是"可见的".如果您的全屏图像 - 请考虑将间距设置为-1值.

  • 似乎没有在子类库上工作,任何想法是谁的情况? (2认同)