图库视图不是从左侧开始

时间:2012-04-05 10:25:37

标签: android android-gallery

我正在使用这样的画廊

<Gallery
    android:id="@+id/gallery1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:spacing="2dp" >
</Gallery>

但是当我运行代码时,我发现画廊从中间开始,我想从左边开始。我该怎么做才能帮助我。

6 个答案:

答案 0 :(得分:7)

描述有关显示的一般信息的结构,例如其大小,密度和字体缩放。要访问DisplayMetrics成员,请初始化此类对象

        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);

        Gallery g = (Gallery) findViewById(R.id.gallery);

        // set gallery to left side
        MarginLayoutParams mlp = (MarginLayoutParams) g.getLayoutParams();
        mlp.setMargins(-(metrics.widthPixels / 2 + (imageWidth/2)), mlp.topMargin,
                    mlp.rightMargin, mlp.bottomMargin);

答案 1 :(得分:2)

只需将Gallery的选择设置为next,类似于该画廊的左侧位置。

Gallery mGallery= (Gallery) findViewById(R.id.gallery);
mGallery.setSelection(1);

然后继续你的正常工作:)

答案 2 :(得分:2)

您应该使用setSelection(1),但在setAdapter()之后放置它很重要。在另一种情况下,它不起作用。

Gallery gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new GalleryImageAdapter(this));
gallery.setSelection(1);

答案 3 :(得分:1)

您需要使用的是.setSelection而不是.setSelected,例如

Gallery gallery =(Gallery)findViewById(R.id.gallery);

gallery.setSelection(1);

答案 4 :(得分:0)

将Gallery的左边距设置为负整数(比如-80 dip)。要正确计算,您将在运行时检查屏幕宽度,然后给出您的项目(图像)宽度,您将执行以下操作:

    int offset = width/2 - itemWidth/2; // you may add your spacing here too
    MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams();
    mlp.setMargins(-offset, mlp.topMargin, mlp.rightMargin, mlp.bottomMargin);

答案 5 :(得分:0)

试试这个会起作用.....

Gallery g=(Gallery)findViewById(R.id.gallery1);

MarginLayoutParams mlp=(MarginLayoutParams)g.getLayoutParams();

mlp.setMargins(-200, 0, 0, 0);