Android:如何以编程方式创建中心按钮?
我需要以编程方式创建一个按钮,并使其在居中布局上,水平和垂直。我试着用下面的代码:Android:如何以编程方式创建中心按钮?
LinearLayout ll = (LinearLayout)findViewById(R.id.layoutItem);
Button b = new Button(this);
b.setBackgroundDrawable(getResources().getDrawable(R.drawable.button));
b.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
b.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
ll.addView(b);
但它不工作。按钮在左上方出现。
有关如何解决此问题的任何线索?
非常感谢。
我会做这样的事情:
LinearLayout.LayoutParams ll = (LinearLayout.LayoutParams)b.getLayoutParams();
ll.gravity = Gravity.CENTER;
b.setLayoutParams(ll);
看看是否能工程。
作品。非常感谢。 – 2012-07-25 20:01:58
没问题...很高兴我能帮到你。 :) – 0gravity 2012-07-25 20:02:40
或者你可以使用一个RelativeLayout
为你的父母View
并执行以下操作:
this.testButton= (Button) this.findViewById(R.id.testButton);
RelativeLayout.LayoutParams testLP = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
testLP.addRule(RelativeLayout.CENTER_IN_PARENT);
this.testButton.setLayoutParams(testLP);
可以为RelativeLayout
设定一些规则。
谢谢。作为替代解决方案,我会牢记这一点。上面的那个虽然很有魅力。 – 2012-07-25 20:02:41
是的,我当时正在发布答案。只是以为我会发布这一个...因为'RelativeLayout'给你更多的自由,以古怪的方式布置你的'视图'...而不是只是垂直或水平。 – prolink007 2012-07-25 20:04:21
尝试设置LinearLayout的'LayoutParams'而不是'Button'本身的'LayoutParams' – DroidBender 2012-07-25 19:41:14
LinearLayout的params通过XML设置。如果我没有设置按钮的参数,它将被填充以填充父项。 – 2012-07-25 19:43:11
为什么不把它放在XML文件中? – JuiCe 2012-07-25 19:51:24