2012-04-05 48 views
4

開始我使用畫廊這樣畫廊的觀點並沒有從左邊

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

,但是當我運行的代碼我發現畫廊從中間開始,我想從左邊開始吧。我該怎麼做,請幫助我。

+0

對象是否使用一個適配器?如果是,您是否可以將代碼發佈到適配器上? – Deva 2012-04-05 10:31:40

+0

此信息有助於: http://stackoverflow.com/questions/4341158/android-align-first-item-in-gallery-to-the-left – 2012-04-13 11:36:10

回答

2

只需將畫廊的選擇設置爲下一個,類似於該畫廊處於左側位置。

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

然後繼續你的正常工作:)

+1

感謝您的回答,但它不工作 – 2012-04-05 13:51:59

0

組的左畫廊的利潤率爲負整數(比如說-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); 
1

需要使用什麼.setSelection不.setSelected,下面的例子

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

gallery.setSelection(1);

0

試試這個它會工作.....

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

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

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

2

您應該使用爲setSelection(1),但將其置於setAdapter後是很重要的() 。在另一種情況下,它不起作用。

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

描述關於顯示的一般信息,A結構,例如它的尺寸,密度,和字體scaling.To訪問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);