2011-05-18 89 views
1

我想以編程方式將代碼中的進度條居中。這裏是我的代碼:如何以編程方式在佈局中居中進度條?

LinearLayout streamLayout = new LinearLayout(this); 
      streamLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
      streamLayout.setOrientation(LinearLayout.VERTICAL); 
      streamLayout.setGravity(Gravity.CENTER); 

      LinearLayout newsLayout = new LinearLayout(this); 
      streamLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
      streamLayout.setOrientation(LinearLayout.VERTICAL); 
      streamLayout.setGravity(Gravity.CENTER); 

      mSwipeView.addView(streamLayout); 
      mSwipeView.addView(newsLayout); 
      mSwipeView.addView(new LinearLayout(this)); 

      ((LinearLayout) mSwipeView.getChildContainer().getChildAt(0)).addView(streamListView); 
      ((LinearLayout) mSwipeView.getChildContainer().getChildAt(0)).addView(streamProgressBar); 
      ((LinearLayout) mSwipeView.getChildContainer().getChildAt(1)).addView(newsListView); 
      ((LinearLayout) mSwipeView.getChildContainer().getChildAt(1)).addView(newsProgressBar); 
      ((LinearLayout) mSwipeView.getChildContainer().getChildAt(2)).addView(chartImageView); 

我怎樣才能讓進度條在垂直居中,並在我的佈局水平?

+0

在什麼中央?屏幕,佈局? – ernazm 2011-05-18 13:18:59

+0

我相信他是指佈局中的水平中心。 – DArkO 2011-05-18 13:24:28

+0

是的,我指的是佈局 – 2011-05-18 13:40:44

回答

2

嘗試使用LinearLayout.layoutParams並將它們設置爲視圖。它們包含可以設置爲Gravity.CENTER或類似的場重力。

See This Link

+0

的水平和垂直中心更新我的代碼與您的鏈接引用。我可以讓它顯示爲水平居中,但我希望它也垂直居中。我怎樣才能做到這一點? – 2011-05-18 14:22:27

+0

你不能在linearLayout中。無論您需要使用重量還是使用相對佈局。當你將重心置於線性佈局時,它只是水平居中。解決方法是使包裝線性佈局大於包裝視圖並使視圖的重心。 – DArkO 2011-05-18 21:44:18

+0

在編程式添加它們之前,您還可以在Xml測試程序佈局中嘗試這些操作。甚至可以製作xml佈局,只需使用佈局充氣器充氣,這似乎是更簡單的方法。 – DArkO 2011-05-18 21:45:05

0
View.setScaleType(ScaleType.CENTER_INSIDE);// or fitCenter 

希望它能幫助:)

+0

這實際上會在進度條上工作嗎?或者它只是爲了圖像? – James 2014-06-25 18:58:35

相關問題