2011-05-18 56 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

相关问题