---恢复内容开始---

Actionbar加按钮:

在res文件夹下新建menu文件夹(如果你没有),然后添加一个XML文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- action items -->
<!-- showAsAction默认为never -->
<item
android:id="@+id/delete1"
android:icon="@android:drawable/ic_menu_camera"
android:showAsAction="always"
android:title="拍照"/>
<item
android:id="@+id/add"
android:icon="@android:drawable/ic_menu_add"
android:showAsAction="ifRoom"
android:title="添加">
</item>
<item
android:id="@+id/delete2"
android:icon="@android:drawable/ic_menu_edit"
android:showAsAction="ifRoom"
android:title="编辑"/>
<item
android:id="@+id/share"
android:icon="@android:drawable/ic_menu_share"
android:showAsAction="never"
android:title="分享"/>
<item
android:id="@+id/call"
android:icon="@android:drawable/ic_menu_call"
android:showAsAction="never"
android:title="呼叫"/>
<item
android:id="@+id/delete3"
android:icon="@android:drawable/ic_menu_help"
android:showAsAction="never"
android:title="帮助"/> <!-- action views -->
<item
android:id="@+id/search"
android:actionViewClass="android.widget.SearchView"
android:showAsAction="always"
android:title="查询"/>
<item
android:id="@+id/clock"
android:actionLayout="@layout/actionbar_layout_menu"
android:showAsAction="always"
android:title="时钟"/>
</menu>

时钟布局文件actionbar_layout_menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<AnalogClock xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > </AnalogClock>

现在在activity里设置

public class MainActivity extends Activity {  

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ActionBar actionBar = getActionBar();
// 是否显示应用程序图标,默认为true
actionBar.setDisplayShowHomeEnabled(true);
// 是否显示应用程序标题,默认为true
actionBar.setDisplayShowTitleEnabled(true); /*
* 是否将应用程序图标转变成可点击的按钮,默认为false。
*
* 如果设置了DisplayHomeAsUpEnabled为true,
*
* 则该设置自动为 true。
*/
actionBar.setHomeButtonEnabled(true);
/*
* 在应用程序图标的左边显示一个向左的箭头,
*
* 并且将HomeButtonEnabled设为true。
*
* 默认为false。
*/
actionBar.setDisplayHomeAsUpEnabled(true); forceShowOverflowMenu(); } /**
* 如果设备有物理菜单按键,需要将其屏蔽才能显示OverflowMenu
*/
private void forceShowOverflowMenu() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class
.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.actionbar_menu, menu);
return super.onCreateOptionsMenu(menu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
/*
* 将actionBar的HomeButtonEnabled设为ture,
*
* 将会执行此case
*/
case android.R.id.home:
finish();
break;
case R.id.menu_setting:
Toast.makeText(this, "设置", Toast.LENGTH_LONG).show();
break;
// 其他省略...
default:
break;
}
return super.onOptionsItemSelected(item);
} @Override
public boolean onMenuOpened(int featureId, Menu menu) {
setOverflowIconVisible(featureId, menu);
return super.onMenuOpened(featureId, menu);
} /**
* 显示OverflowMenu的Icon
*
* @param featureId
* @param menu
*/
private void setOverflowIconVisible(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
Log.d("OverflowIconVisible", e.getMessage());
}
}
}
} }

转自:http://blog.csdn.net/zhangzeyuaaa/article/details/40783681

Titlebar加自定义按钮:

在activity的onCreate()里加入代码,这几行代码添加的时候要注意顺序

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.activity_main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.title);

title.xml的话就放自己需要的东西

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="48dp">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test"/>
</LinearLayout>

在清单文件中需要设置的activity里添加theme属性

android:theme="@style/titlebarstyle"

这是个自定义的style

<style name="CustomizedWindowTitleBackground">
<item name="android:background">#047BF0</item>
</style>
<style name="titlebarstyle" parent="android:Theme">
<item name="android:windowTitleSize">48dp</item>
<item name="android:windowTitleBackgroundStyle">@style/CustomizedWindowTitleBackground</item>
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>

---恢复内容结束---

titlebar和actionbar上的按钮设置的更多相关文章

  1. QMessageBox 弹出框上的按钮设置为中文

    Qt 默认的弹出框上的按钮式英文,虽然也知道是什么意思,但终究不如中文看着顺眼. QMessageBox box(QMessageBox::Warning,"标题","弹 ...

  2. Android UI ActionBar功能-在 Action Bar 上添加按钮

    在ActionBar上添加按钮实现某些功能最常见的Application的功能如:在ActionBar上添加一个搜索按钮: 首先官方文档说明:http://wear.techbrood.com/tra ...

  3. css 文件上传按钮美化

    转自:http://zixuephp.net/article-85.html 思路:在一个div里面添加一个图片用作按钮再添加一个input file 文件上传,把文件上传按钮设置透明度为0,绝对定位 ...

  4. Android -- ActionBar上的三点菜单显示不出来问题

    把Theme设置为Theme.AppCompat.Light.DarkActionBar,ActionBar上的三点菜单就是显示不出来,最终找到了一种解决办法:http://blog.csdn.net ...

  5. 动态改变actionbar上menu的图标

    工作中遇到了一个需求是,在滚动的时候让actionbar上的图标进行变色.实现后在这里总结下思路. 一.先在主题中定义好Actionbar的style <style name="App ...

  6. 用jQuery File Upload做的上传控件demo,支持同页面多个上传按钮

    需求 有这么一个需求,一个form有多个文件要上传,但又不是传统的图片批量上传那种,是类似下图这种需求,一开始是用的swfupload做的上传,但是问题是如果有多个按钮的话,就要写很多重复的代码,于为 ...

  7. CSS自定义文件上传按钮

    今天一同事问我文件上传按钮的问题,情况是这样的,他页面上有3个按钮,分为左中右三个,左边的位按钮甲,右边的位按钮乙,而中间的就是个文件选择按钮,情况大概是这个样子的: 两边的按钮都有了样式,但中间的选 ...

  8. UITableViewCell上的按钮点击事件处理

    转自:  http://www.aichengxu.com/view/42871 UITableViewCell上的按钮点击事件处理,有需要的朋友可以参考下. 今天突然做项目的时候,又遇到处理自定义的 ...

  9. 在 ActionBar 添加刷新按钮

    在以前版本的 Gmail 应用中,ActionBar 上有个刷新菜单,点击一下刷新菜单变成一个转圈的刷新标示动画图片. 之前实现该功能的时候都是使用一个类库 RefreshActionItem来实现的 ...

随机推荐

  1. 一个C++程序员学习C#语言

    感悟:C++是一门语法非常严谨的语言,只是指针就很难掌握,这其中肯定要经历很多折腾,特别是自学者. 折腾了一年半的C++,在即将毕业之际,对Unity3d游戏开发感兴趣,先是用cocos2dx开发了个 ...

  2. Ikki's Story IV - Panda's Trick

    poj3207:http://poj.org/problem?id=3207 题意::平面上有一个圆,圆的边上按顺时针放着0..n-1共n个点.现在要连m条边,比如a,b,那么a到b可以从圆的内部连接 ...

  3. Android 使用HTTP(get和post)方式登陆服务器

    package com.wuyou.submittoserver; import android.os.Bundle; import android.support.v7.app.ActionBarA ...

  4. sql server知道触发器名如何查看里面代码

    以sqlserver2008为例,可以写代码查看,也可以通过SQL Server Manager Studio工具的树形列表查看. 一.代码查看: 直接在SQL Server Manager Stud ...

  5. ipython notebook使用教程

    在一次师兄(师兄博客地址)的例会汇报中,介绍了ipython notebook,当时觉得很酷炫,渐渐自己使用的时候才发现真的很强大.抽空整理下,找了些资料进行补充,并挨个进行了实现,留个笔记,也欢迎喜 ...

  6. Java IO复习 UDP

    客户端: package cn.zyw.javaurl; import java.io.IOException; import java.net.*; /** * Created by zyw on ...

  7. hdu 4414 暴力枚举

    #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #i ...

  8. Tomcat8 配置NIO

    conf/server.xml 打开:<Executor name="tomcatThreadPool" namePrefix="catalina-exec-&qu ...

  9. 2016 GDCPC 省赛总结

    大神们说,要多写博客,多总结,于是很久之前就开了博客,可是一篇文章都没有写,太懒也是,没什么时间也是.现在省赛结束了,也是时候好好总结一下了. 本来一开始,三个人对拿铜牌是很有把握的,在比赛一开始A了 ...

  10. iOS-实现映客首页TabBar和滑动隐藏NavBar和TabBar

    之前在做直播的时候,参照了映客App,发现其首页的效果还挺不错,在网上找了一下相关仿映客App代码和博客,大部分都是说如何播放直播流和推流,对于UI这块甚少,所以我自己花了点时间研究了一下映客的首页U ...