2012-09-08 38 views
0

我有一個垂直線性佈局,裏面有一個滾動視圖。Android - 在一個線性水平佈局中設置三個圖像的權重

編程,我加入了一些事兒吧

  • 一個TextView裏面,它的確定:我可以在使用

    LayoutParams params = new LinearLayout.LayoutParams (
    LayoutParams.FILL_PARENT, 
    LayoutParams.WRAP_CONTENT 
    ); 
    
    ... 
    
    monthNameTextView.setLayoutParams(params); 
    monthNameTextView.setGravity(Gravity.CENTER_HORIZONTAL); 
    
  • 然後我添加一個水平的LinearLayout使其居中。這是確定

    gallery = new LinearLayout(this); 
    
    gallery.setOrientation(LinearLayout.HORIZONTAL); 
    gallery.setGravity(Gravity.CENTER_HORIZONTAL); 
    gallery.setLayoutParams(params); 
    
  • 然後我加3個ImageView的加載圖像320交織盤

    Bitmap myJpg = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
    ImageView cover = new ImageView(this); 
    cover.setImageBitmap(myJpg); 
    gallery.addView(cover); 
    

圖像加載,三個,並且都集中到線性佈局。

問題是從一個圖像沒有間距下一個。

我是新來的,我試圖理解layout_weight和weight的區別,我在這裏問你如何以編程方式設置這些參數,以便有一個簡單的居中設置的三個圖像與'一些'間距beetween他們每個人。

(抱歉不好英語)

+1

您應該考慮使用「保證金」的視圖之間的一些空間。 「重量」全部是關於(線性)佈局內同胞視圖的大小分佈。 – yrajabi

+0

你能解釋一下體重和體重的不同嗎?另外:如何以編程方式設置此屬性? – realtebo

+0

我試了magParams.setMargins(10,10,10,10);但以這種方式有從底部和頂部空間的空間,但是沒有空間beetween圖像 – realtebo

回答

2

更改代碼添加ImageViews這樣:

Bitmap myJpg = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
ImageView cover = new ImageView(this); 
cover.setImageBitmap(myJpg); 
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
llp.setMargins(YOUR_DESIRED_SPACE_VALUE, 0, 0, 0); // 4 margin values for Top/Left/Right/Bottom 
gallery.addView(cover, llp); 
+0

'的LayoutParams magParams =新LinearLayout.LayoutParams( \t \t \t \t LayoutParams.WRAP_CONTENT, \t \t \t \t LayoutParams.WRAP_CONTENT \t \t) ; magParams.setMargins(10,10,10,10); ' 我只是試過這個,但是這樣就有上下空間,但是不存在圖像 – realtebo

+1

@realtebo好了,我編輯了我的答案,看起來我們應該在將ImageView添加到其父項時傳遞LayoutParam。 – yrajabi

+0

反對!我犯了一個錯誤。我將邊界應用於線性佈局而不是應用於單個圖像。當圖像清晰時,所有人都在工作,謝謝! – realtebo

1

是否有必要做佈局在你的代碼?如果要顯示的圖像數量始終爲三,則只需創建一個XML佈局文件,然後爲其動態設置圖像。

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" 
     android:layout_margin="5dp"/> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" 
     android:layout_margin="5dp"/> 

    <ImageView 
     android:id="@+id/imageView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" 
     android:layout_margin="5dp"/> 

</LinearLayout> 

然後在你的代碼:

​​
+0

這是一個奇妙的方式,我不知道它! 如何設置此佈局dinamically?圖像每次三個,但標題+ 3圖像添加'n'次。因此,從文件加載佈局和簡單設置圖像將是一個有趣的方式 – realtebo

相關問題