最近做项目中遇到ToolBar因为不同的界面toobar不同为了描述统一的风格。相信大家也非常清楚,大多数ToolBar包括以下几个方面
左标题 左边题颜色 左标题图标等
标题 标题颜色
右标题 右标题颜色 右标题图标
ToolBar标题 ToolBar颜色 ToolBar图标
ToolBar子标题 ToolBar子标题 ToolBar子标题颜色
再看一下淘宝以及其他appToolBar样式界面
下面看下我自定义的CustomeToolBar继承原生ToolBar
代码如下 | 复制代码 |
packagecom.ldm.imitatewx;
importandroid.content.Context; importandroid.graphics.drawable.Drawable; importandroid.support.v4.content.ContextCompat; importandroid.util.AttributeSet; importandroid.view.View; importandroid.widget.TextView; importandroid.widget.Toolbar;
/** * Created by John on 2017/2/16. */
publicclassCustomeToolBarextendsToolbar { privateTextView mTvMainTitleLeft; privateTextView mTvMainTitle; privateTextView mTvMainRight; publicCustomeToolBar(Context context) { super(context); }
publicCustomeToolBar(Context context, AttributeSet attrs) { super(context, attrs); }
publicCustomeToolBar(Context context, AttributeSet attrs,intdefStyleAttr) { super(context, attrs, defStyleAttr); }
@Override protectedvoidonFinishInflate() { super.onFinishInflate(); mTvMainTitleLeft= (TextView) findViewById(R.id.lt_main_title_left); mTvMainTitle= (TextView) findViewById(R.id.lt_main_title); mTvMainRight= (TextView) findViewById(R.id.lt_main_title_right); } //设置主title内容 publicvoidsetMainTitle( String text ) { this.setTitle(" "); mTvMainTitle.setVisibility(View.VISIBLE); mTvMainTitle.setText(text); } //设置主title的内容文字的颜色 publicvoidsetTitleColor(intcolor ) { mTvMainTitle.setTextColor(color); } //设置左边title内容 publicvoidsetMainTitleLeft(String text ) { mTvMainTitleLeft.setVisibility(View.VISIBLE); mTvMainTitleLeft.setText(text); } //设置左边的title颜色 publicvoidsetMainTitleLeftColor(intcolor ) { mTvMainTitleLeft.setTextColor(color); } //设置左边icon publicvoidsetMainTitleLeftDrawable(intres ) { Drawable left= ContextCompat.getDrawable(getContext(),res); left.setBounds(0,0,left.getMinimumWidth(),left.getMinimumHeight()); mTvMainTitleLeft.setCompoundDrawables(left,null,null,null); } //设置右边的title publicvoidsetTvMainRightText(String text ) { mTvMainRight.setVisibility(View.VISIBLE); mTvMainRight.setText(text); } //设置右边标题的颜色 publicvoidsetMainTitleRightColor(intcolor ) { mTvMainRight.setTextColor(color); } //设置右边icon publicvoidsetMainTitleRightDrawable(intres ) { Drawable right= ContextCompat.getDrawable(getContext(),res); right.setBounds(0,0,right.getMinimumWidth(),right.getMinimumHeight()); mTvMainTitleLeft.setCompoundDrawables(right,null,null,null); } //设置toolbar颜色 publicvoidsetToolBarBackground(intres ) { this.setBackgroundResource(res); } //设置ToolBar左边的图标 publicvoidsetToolbarLeftBackImageRes(intres ) { this.setNavigationIcon(res); } //设置toolbar左边文字 publicvoidsetToolbarLeftText(String text ){ this.setNavigationContentDescription(text); } //设置toolbar标题 publicvoidsetToolbarTitle(String text ) { this.setTitle(text); } //设置toolbar颜色 publicvoidsetToolbarTitleColor(intcolor ) { this.setTitleTextColor(color); } //设置ToolBar子标题 publicvoidsetToolbarSubTitleText(String text ) { this.setSubtitle(text); } //设置toolbar子标题的颜色 publicvoidsetToolbarSubTitleTextColor(intcolor ) { this.setSubtitleTextColor(color); }
} |
然后布局引用activity_custome_toolbar
因为其实toolbar说白也是view也可以说是一个布局
所以我们只要根据自己需求往里面丢东西就ok,这里可能不全面,希望大家一起完善谢谢!
代码如下 | 复制代码 |
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="?attr/label_textSize" android:background="@android:color/holo_green_light" android:fitsSystemWindows="true" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:popupTheme="@style/MyPopStyle" > android:id="@+id/lt_main_title_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="返回" android:gravity="center" android:drawableLeft="@drawable/ic_back_u" android:textColor="@android:color/white" android:singleLine="true" android:textSize="16sp" android:visibility="visible"/> android:id="@+id/lt_main_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:singleLine="true" android:textColor="@android:color/white" android:text="标题" android:textSize="20sp" android:visibility="visible" /> android:id="@+id/lt_main_title_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginRight="10dp" android:text="返回" android:gravity="center" android:drawableRight="@drawable/ic_add" android:textColor="@android:color/white" android:singleLine="true" android:textSize="16sp" android:visibility="visible"/> |
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔