4

我正在使用这样的画廊

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

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

4

6 回答 6

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);
于 2014-04-15T11:55:48.020 回答
2

只需将画廊的选择设置为下一个,这类似于画廊在左侧位置。

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

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

于 2012-04-05T10:31:53.087 回答
2

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

Gallery gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new GalleryImageAdapter(this));
gallery.setSelection(1);
于 2014-03-16T13:44:01.057 回答
1

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

画廊画廊=(画廊)findViewById(R.id.gallery);

图库.setSelection(1);

于 2012-06-14T08:48:58.793 回答
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);
于 2012-05-26T00:31:37.937 回答
0

试试这个它会工作......

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

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

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

于 2013-10-23T19:16:30.040 回答