我对Android SDK随附的默认ImageButton项目不满意,我想定义从ImageButton扩展的我自己的ImageButton(简称为SquareImageButton)。

因此,我创建了一个这样的类:

public class SquareImageButton extends ImageButton {

// Here I want to include some code which would for example
// force the width of the SquareImageButton to be equal to its height
// And many other things !!!

}


现在,我想像使用普通的ImageButton一样在xml中使用这个SquareImageButton。例如这样:

<SquareImageButton
            android:id="@+id/speakButton"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:src="@drawable/icon_rounded_no_shadow_144px"
           />


我应该如何在SquareImageButton类中编写代码来做到这一点?为了能够在没有编译或运行时错误的情况下将我的SquareImageButton包含在xml中,还有其他事情要做吗?

谢谢 !!!

最佳答案

我应该如何在SquareImageButton类中编写代码来做到这一点?


我将覆盖ImageButton提供的所有构造函数,尤其是ImageButton(Context context, AttributeSet attrs),因为它应该是布局膨胀使用的构造函数。确保该类和这些构造函数为public。那应该是您所需要的。

请注意,您将需要将类名完全限定为XML元素(<com.regis.ag.SquareImageButton>),因为您的类不在像android.widget这样的知名软件包中。

09-30 15:15