您的位置:首页 > 其它

重写Gallery中方法去处理Gallery滑动时的惯性

2012-06-27 17:48 239 查看
Gallery在滑动的时候有一个脱手时候的速度,这个速度将会影响Gallery滑动的惯性,有时候我们需要对这个惯性进行处理,这个时候我们就得自己定义View了,自定义个Gallery继承Gallery,并且重写onFling()方法,如下:

public class GalleryDemo extends Gallery {

public GalleryDemo(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// TODO Auto-generated method stub
return super.onFling(e1, e2, velocityX / 4, velocityY);
}

}


值得注意的是自己定义控件的时候得使用
public GalleryDemo(Context context, AttributeSet attrs)构造方法,要不则会出现莫名其妙的异常。

下面就是去使用这个自定义的Gallery了:

public class GalleryDemoActivity extends Activity {
private Gallery gl_main;
private GalleryAdapter adapter;
private int[] pics = new int[] { R.drawable.a1, R.drawable.a2, R.drawable.a3, R.drawable.a4, R.drawable.a5,
R.drawable.a6, R.drawable.a7, R.drawable.a8, R.drawable.a9, R.drawable.a10 };

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gl_main = (Gallery) findViewById(R.id.gl_main);
adapter = new GalleryAdapter();
//gl_main.
gl_main.setAdapter(adapter);
}

private class GalleryAdapter extends BaseAdapter {

@Override
public int getCount() {
// TODO Auto-generated method stub
return pics.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView iv = new ImageView(GalleryDemoActivity.this);
iv.setLayoutParams(new Gallery.LayoutParams(160, 320));
iv.setImageResource(pics[position]);
return iv;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: