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

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. 自动生成makefile的脚本

    如果需要测试某一个特性,写了一个test.cpp 某天又增加了一个utils.cpp,依此类推,测试文件越来越多 每次测试时都要手动维护一个makefile实在是不明智的 于是萌生了用脚本自动维护的念 ...

  2. UFLDL教程(四)之Softmax回归

    关于Andrew Ng的machine learning课程中,有一章专门讲解逻辑回归(Logistic回归),具体课程笔记见另一篇文章. 下面,对Logistic回归做一个简单的小结: 给定一个待分 ...

  3. LightOj_1265 Island of Survival

    题目链接 题意: 在孤岛生存, 孤岛上有t头老虎,d头鹿, 每天会出现随机出现两只生物(包括你自己), 如果出现了一只老虎,那么你将被吃掉, 如果两只老虎, 则两只老虎会同归于尽,其他情况你都将生存下 ...

  4. 浅谈JS DDoS攻击原理与防御

    分布式拒绝服务攻击(DDoS)攻击是一种针对网站发起的最古老最普遍的攻击.Nick Sullivan是网站加速和安全服务提供商CloudFlare的一名系统工程师.近日,他撰文介绍了攻击者如何利用恶意 ...

  5. 直接将视频文件原码流转换成YUV,输出到屏幕显示

    #include "stdafx.h" #define inline _inline#ifndef INT64_C#define INT64_C(c) (c ## LL)#defi ...

  6. Spark:Master High Availability(HA)高可用配置的2种实现

    Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题.如何解决这个单点故障的问题,Spar ...

  7. oracle索引再论

    ORACLE中索引的数据结构有B树结构和位图结构. 我们通常用的普通索引.反向键索引.函数索引等都是B树结构的,是树状结构:位图结构则只有叶子节点. B树索引操作有唯一性扫描,范围扫描,快速索引全扫描 ...

  8. Java:多线程,线程池,使用CompletionService通过Future来处理Callable的返回结果

    1. 背景 在Java5的多线程中,可以使用Callable接口来实现具有返回值的线程.使用线程池的submit方法提交Callable任务,利用submit方法返回的Future存根,调用此存根的g ...

  9. bzoj3504

    这是一道最大流的题目首先要引起注意的是,这类多个起点多个终点的问题一定要同时跑,不能分开来跑由于是无向图,也就相当于从起点跑2*n次好,不难想到s向两个起点连边,两终点想t连边,流量为2*an或2*b ...

  10. 20140704笔试面试总结(java)

    1.java数组定义 1.与其他高级语言不同,Java在数组声明时并不为数组分配存储空间,因此,在声明的[]中不能指出数组的长度 2.为数组分配空间的两种方法:数组初始化和使用new运算符 3.未分配 ...