Android忽略我的setWidth()和setHeight()

时间:2010-05-04 12:46:09

标签: android button view

那么,为什么这段代码:

package org.popoffka.apicross;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;

public class Game extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     Button testButton = new Button(this);
     testButton.setBackgroundResource(R.drawable.cell);
     testButton.setWidth(20);
     testButton.setHeight(20);
     setContentView(testButton);
 }
}

...生产这件事: http://i42.tinypic.com/2hgdzme.png即使代码中有setWidth(20)和setHeight(20)? (R.drawable.cell实际上是一个20x20的PNG图像,包含一个带有银色边框的白色单元格)

2 个答案:

答案 0 :(得分:13)

设置View的宽度和高度的正确方法是通过LayoutParams来实现。请参阅ViewGroup.LayoutParams和View.getLayoutParams()。

答案 1 :(得分:3)

您将按钮设置为内容视图,这意味着您将其用作“根容器”。

您应该将Button添加到适当的布局,然后将布局设置为内容视图。

想一想,你在按钮两侧会有什么?没有任何组件可以覆盖该区域,并且UI不可能知道在这些区域呈现什么。