一:ToolBar简单使用
效果图:
布局的代码:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:theme="@style/Theme.ToolBar.More"
app:logo="@drawable/logo"
app:navigationIcon="@mipmap/back_ib"
app:subtitle="子标题"
app:subtitleTextAppearance="@style/ToolbarTextAppearanceSubTitle"
app:subtitleTextColor="@color/white"
app:title="标题"
app:titleTextAppearance="@style/ToolbarTextAppearanceTitle"
app:titleTextColor="@color/white"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自定义"
android:textColor="@color/white"
android:textSize="16sp"/>
</android.support.v7.widget.Toolbar>
styles.xml中添加如下:
<style name="ToolbarTextAppearanceTitle">
<item name="android:textSize">16sp</item>
</style>
<style name="ToolbarTextAppearanceSubTitle">
<item name="android:textSize">14sp</item>
</style>
Activity中的代码:
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.inflateMenu(R.menu.toolbar_menu);
//action menu操作菜单按钮的点击事件
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.share:
Toast.makeText(ToolbarActivity.this, "分享", Toast.LENGTH_SHORT).show();
break;
case R.id.setting:
Toast.makeText(ToolbarActivity.this, "设置", Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
//导航按钮的点击事件
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
toolbar_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/share"
android:icon="@drawable/share_icon"
android:title="分享"
app:showAsAction="ifRoom" />
<item
android:id="@+id/setting"
android:icon="@drawable/nav_icon_settings"
android:orderInCategory="100"
android:title="设置"
app:showAsAction="never" />
</menu>
二:
注意点:最右边的图标默认是黑色的,如果想修改成白色,需要覆盖android:style/Widget.Holo.Light.ActionButton.Overflow中的这张图标
我们自己定义一个ActionButton.Overflow.More。
more_icon是我们自己的图标
<style name="Theme.ToolBar.More" parent="Theme.AppCompat.Light.NoActionBar">
<item name="actionOverflowButtonStyle">@style/ActionButton.Overflow.More</item>
</style>
<style name="ActionButton.Overflow.More" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
<item name="android:src">@mipmap/more_icon</item>
</style>
我们查看:android:style/Widget.Holo.Light.ActionButton.Overflow
<style name="Widget.Holo.Light.ActionButton.Overflow">
<item name="src">@drawable/ic_menu_moreoverflow_holo_light</item>
<item name="contentDescription">@string/action_menu_overflow_description</item>
</style>
继续查看:ic_menu_moreoverflow_holo_light
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_menu_moreoverflow_normal_holo_light" />
</selector>
继续查看:ic_menu_moreoverflow_normal_holo_light
右键-Copy Path 得到图片路径:
F:\Android\sdk\platforms\android-23\android.jar!\res\drawable-hdpi-v4\ic_menu_moreoverflow_normal_holo_light.png
找到android.jar文件复制到另一个文件夹下面,对其直接进行解压即可找到ic_menu_moreoverflow_normal_holo_light.png这张图片,三个点的确是黑色的。