Android如何真正衡量ImageView的一面,使其成为正方形?

时间:2012-07-13 07:30:53

标签: android imageview measure

我想知道如何真正测量ImageView的一面以使其成为正方形。

例如:

我有这个ImageView

<ImageView
 android:id="@+id/imageView1"
 android:layout_width="fill_parent"
 android:layout_height="0dp"
 android:layout_weight="50"
 android:background="@drawable/image"/>

我想要做的只是使用此代码获得真正的高度测量(在DP或PX中)以形成正方形:

ImageView imageView1 = (ImageView) this.findViewById(R.id.imageView1);
imageView1.getLayoutParams().width = imageView1.getHeight();

但如果我使用其中一个代码,我总是“0”:

   imageView1.getHeight();
   imageView1.getLayoutParams().height;
   imageView1.getMeasuredHeight();

因为我将layout_height“0dp”设置为50%layout_weight。

有一种方法可以使ImageView成为方块吗?

很多人......

2 个答案:

答案 0 :(得分:0)

使用此

imageView.measure(imageView.getMeasuredWidth(), imageView.getMeasuredHeight());
imageView.getHeight();
imageView.getWidth();

答案 1 :(得分:0)

试试这个:

 public class Something extends Activity {
   ImageView imageView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_something);
      imageView = (ImageView) findViewById(R.id.yourImage);
      getDimensions();
  }

    private void getDimensions() {
      imageView.measure(imageView.getMeasuredWidth(),
      imageView.getMeasuredHeight());
      int Width = getMeasuredWidth();
      int Height = getMeasuredHeight();
      Toast.makeText(this, "width: " + Width + " height: " + Height,
            Toast.LENGTH_SHORT).show();
  }

}

它适用于我,使用api 4/17,目标api 10。 结果在px。