有一个自定义控件使用如下:
<my
   android:layout_width="50dp"
   android:layout_height="wrap_content"/>我如何在my中得到宽度50了?android

解决方案 »

  1.   

    得到宽度?是指在java代码中获取控件宽度吗?可以用你的控件.getwidth看看。
      

  2.   

    最简单的一种方式就是自定义View重载完超类View时, 直接使用 getLayoutParams().width 或者 getLayoutParams().height,。 即表示对应地android:layout_width="50dp"或android:layout_height 描述的属性值了。 具体实现过程,已经封装好了。同时,计量单位也已经转换好了 。例如:dip , sp等。  如果你想确定该View该屏幕上的最终确定值,可以使用getMeasureWidth()或者getWidth() 去获取。
       
      

  3.   

    在inflate完成之前,只能通过getMeasureWidth()取得宽度
      

  4.   

    4楼正解,只有inflate完成以后,才能使用getWidth来获取宽度,否则只能用getMeasureWidth