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

Uma*_*til 7 android gallery

可能重复:
android gallery图像位置问题

我正在我的应用中使用图库视图.现在我运行代码.图库默认选中的项目为1,位于中心,左侧为空白.相反,我希望没有1项应该在左边并选中.同时单击任何图库项目不应将该项目置于中心.

我厌倦了在群体上狩猎,但没有找到任何解决方案.这可能吗?如果是,那么怎么样?

gib*_*ffe 11

嘿,我有点像调整左边距这样的问题:

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
);
Run Code Online (Sandbox Code Playgroud)

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

如果你更换

-(metrics.widthPixels/2)
Run Code Online (Sandbox Code Playgroud)

-(metrics.widthPixels/2 + YOUR_IMAGE_WIDTH)
Run Code Online (Sandbox Code Playgroud)

它一直到屏幕的左边缘(假设这个图库显示相同大小的图像,这是我的情况)


Dev*_*red 1

Gallery没有自定义挂钩来支持在没有自定义实现的情况下执行您想要的操作。您应该查看的是 Gallery 小部件的源代码:

Gallery.java

将此作为自定义小部件的起点,该小部件完全可以满足您的需求。特别要注意setSelectionToCenterChild()当前图库如何进行选择的方法。许多方法都不是私有的,因此您可能能够摆脱子类化和重写方法......但很可能您需要获取此源并创建一个新类。

希望有帮助!