Sam*_*rai 9 animation android gallery
我正在尝试以编程方式为库实现滚动动画.
试过,setSelection(int pos, Boolean animate)它不起作用.
无论如何都有覆盖setSelection()方法.
ple*_*ock 12
刚才我遇到了这个问题.我只需要移动画廊中的一个元素,所以对我来说最好的解决方案是模拟关键事件
myGallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
Run Code Online (Sandbox Code Playgroud)
要么
myGallery.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, null);
Run Code Online (Sandbox Code Playgroud)
Gallery.setSelection(int position,boolean animate);
请参阅以下网址:http: //groups.google.com/group/android-developers/browse_thread/thread/9140fd6af3061cdf/7f89e53ae53e455b?lnk=gst&q=setselection#7f89e53ae53e455b
Soln:如果你还在寻找,我有两种可能的解决方案,两者都有些不愉快:
(1)您可以使画廊以选定的速度进行投掷,因此:
myGallery.onFling(null,null,velocity,0);
通过调整速度,您可以设置值以在任一方向上将选择移动一或两个.由于画廊自我中心,您不需要完全正确的目的地.
(2)由于Gallery源可用,您可以对其进行修改以实现自己的Gallery.看起来好像你需要添加很多代码才能控制一个fling,以便以你选择的选择结束.
我以为我将要做(2),但发现我可以逃避(1)我的问题.
基于Kurru的模拟点击下一个或上一个视图的优秀思想.
//scroll forward or backward
private void scroll(int type){
View selectedV = mG.getSelectedView();
int idx = mG.indexOfChild(selectedV);
switch(type){
case FORWARD:
default:
if(idx<mG.getChildCount()-1)
idx++;
break;
case BACKWARD:
if(idx>0)
idx--;
break;
}
//now scrolled view's child idx in gallery is gotten
View nextView = mG.getChildAt(idx);
//(x,y) in scrolled view is gotten
int x = nextView.getLeft()+nextView.getWidth()/2;
int y = nextView.getTop()+nextView.getHeight()/2;
String out = String.format("x=%d, y=%d", x, y);
Log.i(TAG+".scroll", out);
//Kurru's simulating clicking view
MotionEvent event = MotionEvent.obtain(100, 100, MotionEvent.ACTION_DOWN, x, y, 0);
mG.onDown(event);
boolean res = mG.onSingleTapUp(null);
Log.i(TAG+".scroll", "onSingleTapUp return =" + res);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14467 次 |
| 最近记录: |