10.1 问题
需要通过组合现有的元素来创建自定义的小部件。
10.2 解决方案
(API Level 1)
通过扩展通用的ViewGroup并添加所需的功能就能创建自定义的小部件。创建自定义小部件或可重用用户界面元素的最简单、最实用的方法就是利用Android SDK提供的现有小部件来创建组合控件。
10.3 实现机制
ViewGroup及其子类LinearLayout、RelativeLayout等能帮助你摆放控件的位置,这样你就可以专注于添加所需的功能。
TextImageButton
下面将创建一个Android SDK中没有原生提供的小部件:含有图片或文字的按钮。为了实现这个小部件,我们创建TextImageButton类,这是对FrameLayout的扩展。其中包含一个用于放置文本内容的TextView,以及一个用于放置图片内容的ImageView(参见以下代码)。
自定义TextImageButton小部件
public class TextImageButton extends FrameLayout {
private ImageView imageView;
private TextView textView;
/* 构造函数 */
public TextImageButton(Context context) {
this(context, null);
}
public TextImageButton(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public TextImageButton(Context