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>

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注