package v2.simpleUi; import v2.simpleUi.uiDecoration.UiDecoratable; import v2.simpleUi.uiDecoration.UiDecorator; import android.content.Context; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; public abstract class M_IconButtonWithText implements ModifierInterface, UiDecoratable { private String myText; private UiDecorator myDecorator; private int myIconId; private ImageView imageButton; public M_IconButtonWithText(int iconId) { myIconId = iconId; } public M_IconButtonWithText(int iconId, String buttonText) { myIconId = iconId; myText = buttonText; } @Override public View getView(final Context context) { LinearLayout l = new LinearLayout(context); LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); l.setOrientation(LinearLayout.VERTICAL); l.setLayoutParams(params); // l.setGravity(Gravity.CENTER_HORIZONTAL); imageButton = new ImageView(context); LayoutParams imparams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); int p = 3; imparams.setMargins(p, p, p, p); imageButton.setLayoutParams(imparams); imageButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { M_IconButtonWithText.this.onClick(context, imageButton); } }); imageButton.setImageResource(myIconId); l.addView(imageButton); TextView t = null; if (myText != null) { t = new TextView(context); t.setText(myText); t.setGravity(Gravity.CENTER_HORIZONTAL); l.addView(t); } if (myDecorator != null) { int level = myDecorator.getCurrentLevel(); myDecorator.decorate(context, imageButton, level + 1, UiDecorator.TYPE_ICON); if (t != null) { myDecorator.decorate(context, t, level + 1, UiDecorator.TYPE_INFO_TEXT); } } return l; } public ImageView getImageButton() { return imageButton; } @Override public boolean save() { return true; } @Override public boolean assignNewDecorator(UiDecorator decorator) { myDecorator = decorator; return true; } public abstract void onClick(Context context, ImageView clickedButton); public void setIconId(int iconId) { myIconId = iconId; if (imageButton != null) { imageButton.setImageResource(myIconId); } } }