Android通用菜单项
public class MenuItemView extends RelativeLayout{
private TextView mTextView;
private TextView mLeftTextView;
private TextView mRightTextView;
private ImageView mImageView;
private ImageView mArrowIcon;
private CharSequence mTitle;
private CharSequence mRightText;
private int mTextColor;
private int mTextSize;
private int mIconResId;
private boolean mArrowVisibility;
public MenuItemView(Context context) {
super(context);
inflate(context, R.layout.widget_menu_item, this);
initView();
}
public MenuItemView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public MenuItemView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
inflate(context, R.layout.widget_menu_item, this);
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MenuItemView, defStyle, 0);
mTitle = typedArray.getText(R.styleable.MenuItemView_text);
mRightText = typedArray.getText(R.styleable.MenuItemView_rightText);
mTextColor = typedArray.getColor(R.styleable.MenuItemView_textColor, 0);
mTextSize = typedArray.getDimensionPixelSize(R.styleable.MenuItemView_textSize, 0);
mIconResId = typedArray.getResourceId(R.styleable.MenuItemView_imageSrc, 0);
mArrowVisibility = typedArray.getBoolean(R.styleable.MenuItemView_arrowVibility, true);
typedArray.recycle();
initView();
}
public void setArrowVisibility(int visibility) {
mArrowIcon.setVisibility(visibility);
}
private void initView() {
mTextView = (TextView) findViewById(R.id.menu_item_tv_title);
mLeftTextView = (TextView) findViewById(R.id.menu_item_tv_left);
mRightTextView = (TextView) findViewById(R.id.menu_item_tv_right);
mImageView = (ImageView) findViewById(R.id.menu_item_iv_icon);
mArrowIcon = (ImageView) findViewById(R.id.menu_item_iv_arrow);
//标题
mTextView.setText(mTitle);
if (mIconResId != 0) {
mImageView.setImageResource(mIconResId);
}
if (mTextColor != 0) {
mTextView.setTextColor(mTextColor);
}
if (mTextSize != 0) {
mTextView.setTextSize(mTextSize);
}
if (!mArrowVisibility) {
mArrowIcon.setVisibility(View.GONE);
}
//右边文字
if (mRightText != null) {
mRightTextView.setVisibility(View.VISIBLE);
mRightTextView.setText(mRightText);
}
this.setClickable(true);
}
public void setText(String text) {
mTextView.setText(text);
}
public void setLeftText(String text) {
//左边文字
mLeftTextView.setVisibility(View.VISIBLE);
mLeftTextView.setText(text);
}
public void setRightText(int resId) {
//右边文字
mRightTextView.setVisibility(View.VISIBLE);
mRightTextView.setText(resId);
}
public void setRightText(String text) {
//右边文字
mRightTextView.setVisibility(View.VISIBLE);
mRightTextView.setText(text);
}
public void setRightTextColor(int resId) {
//右边文字
mRightTextView.setVisibility(View.VISIBLE);
mRightTextView.setTextColor(resId);
}
public void setRightTextVisibility(int visibility) {
mRightTextView.setVisibility(visibility);
}
public void hideLeftText() {
mLeftTextView.setVisibility(View.GONE);
}
}
<?xml version="1.0" encoding="utf-8"?><!-- 菜单item -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingBottom="10dp"
android:paddingTop="10dp">
<ImageView
android:id="@+id/menu_item_iv_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/menu_item_tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/content_margin"
android:layout_toRightOf="@+id/menu_item_iv_icon"
android:textColor="@color/text_black"
android:textSize="@dimen/text_size_4x" />
<TextView
android:id="@+id/menu_item_tv_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/menu_item_tv_title"
android:textColor="@color/text_black"
android:textSize="16sp"
android:visibility="gone" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical">
<TextView
android:id="@+id/menu_item_tv_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textColor="@color/text_black"
android:textSize="16sp"
android:visibility="gone" />
<ImageView
android:id="@+id/menu_item_iv_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/home_point_icon" />
</LinearLayout>
</RelativeLayout>