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 に答える
1

使用する必要があるのは、.setSelected ではなく .setSelection です。以下の例をご覧ください。

ギャラリー gallery= (ギャラリー) findViewById(R.id.gallery);

gallery.setSelection(1);

于 2012-06-14T08:48:58.793 に答える
0

ギャラリーの左マージンを負の整数 (たとえば -80 ディップ) に設定します。適切に計算するには、実行時に画面の幅を確認し、アイテム (画像) の幅を指定して、次のようにします。

    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 に答える