titlebar和actionbar上的按钮设置
---恢复内容开始---
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上的按钮设置的更多相关文章
- QMessageBox 弹出框上的按钮设置为中文
Qt 默认的弹出框上的按钮式英文,虽然也知道是什么意思,但终究不如中文看着顺眼. QMessageBox box(QMessageBox::Warning,"标题","弹 ...
- Android UI ActionBar功能-在 Action Bar 上添加按钮
在ActionBar上添加按钮实现某些功能最常见的Application的功能如:在ActionBar上添加一个搜索按钮: 首先官方文档说明:http://wear.techbrood.com/tra ...
- css 文件上传按钮美化
转自:http://zixuephp.net/article-85.html 思路:在一个div里面添加一个图片用作按钮再添加一个input file 文件上传,把文件上传按钮设置透明度为0,绝对定位 ...
- Android -- ActionBar上的三点菜单显示不出来问题
把Theme设置为Theme.AppCompat.Light.DarkActionBar,ActionBar上的三点菜单就是显示不出来,最终找到了一种解决办法:http://blog.csdn.net ...
- 动态改变actionbar上menu的图标
工作中遇到了一个需求是,在滚动的时候让actionbar上的图标进行变色.实现后在这里总结下思路. 一.先在主题中定义好Actionbar的style <style name="App ...
- 用jQuery File Upload做的上传控件demo,支持同页面多个上传按钮
需求 有这么一个需求,一个form有多个文件要上传,但又不是传统的图片批量上传那种,是类似下图这种需求,一开始是用的swfupload做的上传,但是问题是如果有多个按钮的话,就要写很多重复的代码,于为 ...
- CSS自定义文件上传按钮
今天一同事问我文件上传按钮的问题,情况是这样的,他页面上有3个按钮,分为左中右三个,左边的位按钮甲,右边的位按钮乙,而中间的就是个文件选择按钮,情况大概是这个样子的: 两边的按钮都有了样式,但中间的选 ...
- UITableViewCell上的按钮点击事件处理
转自: http://www.aichengxu.com/view/42871 UITableViewCell上的按钮点击事件处理,有需要的朋友可以参考下. 今天突然做项目的时候,又遇到处理自定义的 ...
- 在 ActionBar 添加刷新按钮
在以前版本的 Gmail 应用中,ActionBar 上有个刷新菜单,点击一下刷新菜单变成一个转圈的刷新标示动画图片. 之前实现该功能的时候都是使用一个类库 RefreshActionItem来实现的 ...
随机推荐
- http server v0.1_http_parse.c
#include <stdio.h> #include <string.h> #include <stdlib.h> #include "mime.h&q ...
- bzoj 1005: [HNOI2008]明明的烦恼 prufer编号&&生成树计数
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2248 Solved: 898[Submit][Statu ...
- iOS开发(Objective-C)常用库索引
code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例 cocoacontrols.com/ 英文版本的lib收集 objclibs.com/ 精品lib的收集网站 h ...
- ios7新特性1-UI变化、UIKit动态行为支持与Text Kit新接口
iOS 7.0新特性1 iOS 7的UI经过了重新设计.另外,iOS7中引入了新的动画系统,便于创建2D和2.5D的游戏.多任务支持提升,点对点通讯以及其他重要的特征使iOS7相对于以往的SDK来说发 ...
- ExecutorService介绍2
Thread和ExecutorService的区别 使用Thread,当子线程执行结束后,主线程如果没有其他执行任务,主线程会终止. /** * Created by litao on 15/10/7 ...
- vector,list,deque容器的迭代器简单介绍
我们知道标准库中的容器有vector,list和deque.另外还有slist,只不过它不是标准容器.而谈到容器,我们不得不知道进行容器一切操作的利器---迭代器.而在了解迭代器之前,我们得先知道每个 ...
- Ubuntu 桌面歌词
Ubuntu 有个用来显示歌词软件叫 osd-lyrics. 这个软件的强大之处在于他可以和各种播放器配合, 并且可以自动下载歌词. 自从升级到14.04后不能用了,便以为该软件被废弃了. 无意中发现 ...
- MFC记录
1,下拉列表式组合框 合框被操作时会向父窗口发送通知消息,这些通知消息及其含义如下: CBN_CLOSEUP:组合框的列表框组件被关闭,简易组合框不会发送该通知消息 CBN_DBLCLK: ...
- 在C#中使用WIA获取扫描仪数据(利用Filter处理图片)
WIA Automation Layer不仅能从设备中捕获照片,还能进行简单的处理.当WIA Automation Layer从设备中捕获照片,保存为一个ImageFile对象,我们可以通过访问该Im ...
- [转载] cookie、JS记录及跳转到页面原来的位置
额....如下 <!-- 定位页面的 Cookie function SetCookie(sName, sValue) { date = new Date(); s = date.getDate ...