Android 通用标题栏之组合控件

1,首先画出布局

"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:id="@+id/rl_bg"
    android:layout_height="match_parent">
    "@+id/img_left"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:background="@mipmap/ic_launcher"
        />
    "@+id/title_name_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="标题名称"
        android:layout_centerInParent="true"
        />

    "@+id/img_right"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_alignParentRight="true"
        android:background="@mipmap/ic_launcher"
        />


2,代码

package com.pdz.com.myview.com.pdz.view;

import android.content.Context;
import android.graphics.Bitmap;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.pdz.com.myview.R;

/**
 * Created by ${cwj} on 2017/7/17.
 * 描述: 组合控件
 */
public class TitleView extends RelativeLayout {
    private ImageView mLeftIv, mRightIv;
    private TextView titleNameTv;
    private RelativeLayout relativeLayout;

    public TitleView(Context context, AttributeSet attrs) {
        super(context, attrs);
        //加载布局
        LayoutInflater.from(context).inflate(R.layout.title_view, this);
        //获取控件
        mLeftIv = findViewById(R.id.img_left);
        mRightIv = findViewById(R.id.img_right);
        relativeLayout = findViewById(R.id.rl_bg);
        titleNameTv = findViewById(R.id.title_name_tv);
    }

    //给左侧的 控件 设置返回 事件
    public void setFinshOnClickListener(OnClickListener clickListener) {
        mLeftIv.setOnClickListener(clickListener);
    }

    /**
     * 设置标题名称
     *
     * @param name
     */
    public void setTitleName(String name) {
        titleNameTv.setText(name);
    }

    /**
     * 设置字体颜色
     *
     * @param color
     */
    public void setTitleNameColor(int color) {
        titleNameTv.setTextColor(color);
    }

    /**
     * 设置字体大小
     *
     * @param size
     */
    public void setTitleNameSize(float size) {
        titleNameTv.setTextSize(size);
    }

    /**
     * 设置标题颜色
     *
     * @param color
     */
    public void setTitleBgColor(int color) {
        relativeLayout.setBackgroundColor(color);
    }

    /**
     * 更换背景图片
     *
     * @param img
     */
    public void setmRightIv(Bitmap img) {
        mRightIv.setImageBitmap(img);
    }

    /**
     * 更换左边背景图片
     *
     * @param img
     */
    public void setmLeftIv(Bitmap img) {
        mLeftIv.setImageBitmap(img);
    }

    /**
     * 隐藏右边图片
     *
     * @param ishint true是显示,flash 是隐藏。
     */
    public void hintRightIc(boolean ishint) {
        if (ishint) {
            mRightIv.setVisibility(VISIBLE);
        } else {
            mRightIv.setVisibility(GONE);
        }
    }
}


3,使用。
            直接在XML布局中 把TitleView和平时一样使用就好了。
            需要什么方法直接调用。或者自己添加需要的方法、

你可能感兴趣的:(Android)