所选的图库默认项目位于中间

可能重复:
android图库位置问题

我在我的应用程序中使用图库视图。 现在当我运行代码。 图库默认select的项目是1号,它在中间,左侧是空白的。 相反,我希望没有一个项目应该在左边并被选中。 同时点击任何画廊项目不应该把这个项目在中心。

我厌倦了很多群体狩猎,但没有find任何解决scheme。 这可能吗? 如果是的话怎么来?

Solutions Collecting From Web of "所选的图库默认项目位于中间"

嘿,我有点绕过调整左边缘这样的同样的问题:

DisplayMetrics metrics = new DisplayMetrics(); ctx.getWindowManager().getDefaultDisplay().getMetrics(metrics); Gallery gallery = (Gallery) ctx.findViewById(R.id.gallery); MarginLayoutParams mlp = (MarginLayoutParams) gallery.getLayoutParams(); mlp.setMargins(-(metrics.widthPixels/2), mlp.topMargin, mlp.rightMargin, mlp.bottomMargin ); 

几乎到了左边缘,但有一点松弛(一半的图像宽度?),我真的很喜欢;

如果你更换

 -(metrics.widthPixels/2) 

 -(metrics.widthPixels/2 + YOUR_IMAGE_WIDTH) 

它一直走到屏幕的左边缘(如果这个画廊显示相同大小的图像,这是我的情况)

Gallery没有自定义钩子来支持做你想做的事情,而不需要自定义的实现。 你应该看一下Gallery组件的源代码:

Gallery.java

使用此作为一个自定义小部件的起点,完全按照您的要求。 特别要注意setSelectionToCenterChild()方法,它是当前Gallery如何select的一部分。 许多方法不是私有的,所以你可能能够脱离子类化和重写方法…但是很可能你需要采取这个源代码并创build一个新的类。

希望帮助!

它适用于我这个:

 mlp.setMargins((int) -(metrics.widthPixels/2.5), mlp.topMargin, mlp.rightMargin, mlp.bottomMargin);