public class AlImageButtonView extends LinearLayout {
private ImageView mButtonImage = null;
private TextView mButtonText = null;
private Context mContext;
public AlImageButtonView(Context context) {
super(context);
this.mContext = context;
mButtonImage = new ImageView(context);
mButtonText = new TextView(context);
mButtonImage.setPadding(0, 0, 0, 0);
mButtonText.setPadding(0, 0, 0, 0);
setClickable(true);
setFocusable(true);
setOrientation(LinearLayout.VERTICAL);
addView(mButtonImage);
addView(mButtonText);
}
public void init(ButtonNode mNode) {
if (mNode.hasValidTextColor()) {
mButtonText.setTextColor(mNode.fontColor);
}
if (mNode.hasValidFontName()) {
mButtonText.setTypeface(AppLoaderUtils.mapToDefaultTypeface(mNode.fontName, mContext));
}
if (mNode.hasValidFontSize()) {
mButtonText.setTextSize(mNode.fontSize);
}
if (mNode.hasValidText()) {
mButtonText.setText(mNode.text);
}
if (mNode.hasValidImage()) {
mButtonImage.setImageDrawable(AppLoaderUtils.loadInnerDrawable(mContext, mNode.image));
}
}
public void setSource(Drawable drawable) {
mButtonImage.setImageDrawable(drawable);
}
}
实现比较简单,如果左右排列,则改变下排列方式就可以了。