2011-11-22 55 views
0

实际上,我收到了一个显示我的绘图并在屏幕中心显示所选项目的图库。如何在Android中创建“偏离中心”的图库

我希望我选择的项目是“偏离中心”(例如:定位在左边的50dip)。

我试图添加一些填充视图和画廊上。我也证实了我的画廊的严重性没有设置在“中心”

顺便说一句,我猜画廊的常见行为是在屏幕中心显示选定的项目。

是否有任何可能的方法来改变所选项目的位置?

非常感谢!如果需要,我可以添加我的代码。

+0

我想你应该探索库的源代码,看看它是如何做,并马贝它会给你一些线索... – Sephy

+0

好吧,你说答案很简单: 添加50dip以滚动的画廊X参数。 – Thordax

回答

1

我终于得到了答案。

首先,您必须将ScrollX设置为与您想要的像素间隔相对应的特定值。

但唯一的解决方案的问题是,选择一个项目,你需要点击屏幕的中心,这是不公平的。

其次,你必须重写库,实现这一OnDoubleTapListener并把他加一个定制的监听器(称为例如onItemTapListener)是这样的:

public void setOnTapItemMenuListener(OnTapItemMenuListener listener) { 
    onTapItemMenuListener = listener; 
} 

我犯了这样的接口来实现我的新听众:

public interface OnTapItemMenuListener { 
    public abstract void onTap(int intPosition); 
} 

而关于事件“onSingleTapConfirmed”因为OnDoubleTapListener的实施来实现,你赶上了事件,并验证event.getX()是到一定的位置,这样,例如:

if (event.getX()/intWidth > 0.20f && event.getX()/intWidth < 0.45f) { 
    Log.i("TAG", "onSingleTapConfirmed on the right area, we launch onTap for the Listener"); 
    onTapItemMenuListener.onTap(this.getSelectedItemPosition()); 
} else { 
    Log.i("TAG", "onSingleTapConfirmed on the wrong area, we don't launch onTap for the Listener"); 
} 

其中intWidth是当前屏幕的像素宽度。