如果我没有缩放视图,如何缩放视图而不占用它所占用的空间?

时间:2014-08-15 05:05:39

标签: java android

我试图使View看起来与正常情况完全相同,只是尺寸较小。我试过这样做:

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

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LinearLayout ll = new LinearLayout(getBaseContext());
    final Button b1 = new Button(getBaseContext());
    final Button b2 = new Button(getBaseContext());
    final Button b3 = new Button(getBaseContext());
    b1.setText("button 1");
    b2.setText("button 2");
    b3.setText("button 3");
    b2.setScaleX(0.5f);
    b2.setScaleY(0.5f);
    ll.addView(b1);
    ll.addView(b2);
    ll.addView(b3);
    setContentView(ll);
  }
}

它会对View进行缩放,但如果我根本不进行缩放,它仍会占用它所占用的空间:

enter image description here

我想摆脱按钮2周围的不可见空间。LinearLayout中的3个按钮应该是紧凑的。

1 个答案:

答案 0 :(得分:0)

button2在设置scale之前进行测量。在设置scale之前调用onmeasure时会生成button2的宽度和高度。这样就无法得到正确的结果。