我对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
这样的知名软件包中。