一、自定义MenuItem的视图

custom_view.xml (就是一个单选按钮)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="fill_parent"android:gravity="left|center_vertical"android:orientation="horizontal"><RadioGroupandroid:id="@+id/radio_nav"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"><RadioButtonandroid:text="Custom"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#ffffff"/><RadioButtonandroid:text="View!"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#ffffff"/></RadioGroup>
</LinearLayout>

MainActivity.java

//Inflate the custom viewView customNav = LayoutInflater.from(this).inflate(R.layout.custom_view, null);//Bind to its state change((RadioGroup)customNav.findViewById(R.id.radio_nav)).setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {Toast.makeText(MainActivity.this, "Navigation selection changed.", Toast.LENGTH_SHORT).show();}});//Attach to the action bar
        getSupportActionBar().setCustomView(customNav);getSupportActionBar().setDisplayShowCustomEnabled(true);

二、添加圆形模糊进度的进度条

package com.kale.actionbar02;import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);setContentView(R.layout.activity_main);//设置actionbar上面显示进度条,true表示显示,如果是false表示不显示  setSupportProgressBarIndeterminateVisibility(true);//Attach to the action bar
        getSupportActionBar().setCustomView(customNav);getSupportActionBar().setDisplayShowCustomEnabled(true);}

}

三、添加有进度的横向进度条

package com.kale.actionbar02;import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.Window;public class MainActivity extends ActionBarActivity {private int mProgress = 100;Handler mHandler = new Handler();Runnable mProgressRunner = new Runnable() {@Overridepublic void run() {mProgress += 2;// Normalize our progress along the progress bar's scaleint progress = (Window.PROGRESS_END - Window.PROGRESS_START) / 100* mProgress;setSupportProgress(progress);if (mProgress < 100) {mHandler.postDelayed(mProgressRunner, 50);}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);  supportRequestWindowFeature(Window.FEATURE_PROGRESS);setContentView(R.layout.activity_main);// 设置actionbar上面显示进度条,true表示显示,如果是false表示不显示//setSupportProgressBarVisibility(true);//设置初始状态是否显示进度条,一般我们不显示。在用的时候再显示它
findViewById(R.id.button_id).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {if (mProgress == 100) {mProgress = 0;mProgressRunner.run();}}});}}

四、添加下拉导航+悬浮模式

给ActionBar添加下拉导航的方法都是添加一个适配器,可以使简单的ArrayAdapter,也可以使SpinnerAdapter,添加完数据后再绑定个监听器。其实和Spinner没啥太大的区别。悬浮模式是可以让布局文件从ActionBar底下通过,可以实现透明效果。其代码就一行:

     // 设置ActionBar为悬浮的,就是说悬浮在布局文件上supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

注意看一下布局的,上边距。是用的ActionBar的高度来指定的

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><ScrollViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:paddingLeft="10dp"android:paddingRight="10dp"android:paddingTop="?actionBarSize"android:orientation="vertical"><TextViewandroid:id="@+id/bunch_of_text"android:layout_width="fill_parent"android:layout_height="wrap_content" /></LinearLayout></ScrollView>
</FrameLayout>

下面是下拉导航的代码:

package com.kale.actionbar02;import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.OnNavigationListener;
import android.support.v7.app.ActionBarActivity;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置ActionBar为悬浮的,就是说悬浮在布局文件上
        supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);setContentView(R.layout.activity_main);// 将ActionBar的操作模型设置为NAVIGATION_MODE_LIST
        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);getSupportActionBar().setTitle(null);Context context = getSupportActionBar().getThemedContext();ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context, R.array.locations,android.R.layout.simple_spinner_dropdown_item);  getSupportActionBar().setListNavigationCallbacks(adapter,new DropDownListenser());// Load partially transparent black background
        getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.bar_color));TextView bunchOfText = (TextView) findViewById(R.id.bunch_of_text);bunchOfText.setText(builder.toString());}/*** 实现 ActionBar.OnNavigationListener接口*/class DropDownListenser implements OnNavigationListener {// 得到和Adapter里一致的字符数组String[] listNames = getResources().getStringArray(R.array.locations);@Overridepublic boolean onNavigationItemSelected(int itemPosition, long itemId) {Toast.makeText(getApplicationContext(), listNames[itemPosition], 0).show();return false;}}}

values/array.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="locations"><item>Home</item><item>Email</item><item>Calendar</item><item>Browser</item><item>Clock</item></string-array>
</resources>

全部的代码:

package com.kale.actionbar02;import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.OnNavigationListener;
import android.support.v7.app.ActionBarActivity;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置ActionBar为悬浮的,就是说悬浮在布局文件上
        supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);setContentView(R.layout.activity_main);// 将ActionBar的操作模型设置为NAVIGATION_MODE_LIST
        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);getSupportActionBar().setTitle(null);Context context = getSupportActionBar().getThemedContext();ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context, R.array.locations,android.R.layout.simple_spinner_dropdown_item);getSupportActionBar().setListNavigationCallbacks(adapter,new DropDownListenser());// Load partially transparent black background
        getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.bar_color));StringBuilder builder = new StringBuilder();for (int i = 0; i < 3; i++) {for (String dialog : DIALOGUE) {builder.append(dialog).append("\n\n");}}TextView bunchOfText = (TextView) findViewById(R.id.bunch_of_text);bunchOfText.setText(builder.toString());}/*** 实现 ActionBar.OnNavigationListener接口*/class DropDownListenser implements OnNavigationListener {// 得到和Adapter里一致的字符数组String[] listNames = getResources().getStringArray(R.array.locations);@Overridepublic boolean onNavigationItemSelected(int itemPosition, long itemId) {Toast.makeText(getApplicationContext(), listNames[itemPosition], 0).show();return false;}}public static final String[] DIALOGUE = new String[] {"So shaken as we are, so wan with care,"+ "Find we a time for frighted peace to pant,"+ "And breathe short-winded accents of new broils"+ "To be commenced in strands afar remote."+ "No more the thirsty entrance of this soil"+ "Shall daub her lips with her own children's blood;"+ "Nor more shall trenching war channel her fields,"+ "Nor bruise her flowerets with the armed hoofs"+ "Of hostile paces: those opposed eyes,"+ "Which, like the meteors of a troubled heaven,"+ "All of one nature, of one substance bred,"+ "Did lately meet in the intestine shock"+ "And furious close of civil butchery"+ "Shall now, in mutual well-beseeming ranks,"+ "March all one way and be no more opposed"+ "Against acquaintance, kindred and allies:"+ "The edge of war, like an ill-sheathed knife,"+ "No more shall cut his master. Therefore, friends,"+ "As far as to the sepulchre of Christ,"+ "Whose soldier now, under whose blessed cross"+ "We are impressed and engaged to fight,"+ "Forthwith a power of English shall we levy;"+ "Whose arms were moulded in their mothers' womb"+ "To chase these pagans in those holy fields"+ "Over whose acres walk'd those blessed feet"+ "Which fourteen hundred years ago were nail'd"+ "For our advantage on the bitter cross."+ "But this our purpose now is twelve month old,"+ "And bootless 'tis to tell you we will go:"+ "Therefore we meet not now. Then let me hear"+ "Of you, my gentle cousin Westmoreland,"+ "What yesternight our council did decree"+ "In forwarding this dear expedience.","Hear him but reason in divinity,"+ "And all-admiring with an inward wish"+ "You would desire the king were made a prelate:"+ "Hear him debate of commonwealth affairs,"+ "You would say it hath been all in all his study:"+ "List his discourse of war, and you shall hear"+ "A fearful battle render'd you in music:"+ "Turn him to any cause of policy,"+ "The Gordian knot of it he will unloose,"+ "Familiar as his garter: that, when he speaks,"+ "The air, a charter'd libertine, is still,"+ "And the mute wonder lurketh in men's ears,"+ "To steal his sweet and honey'd sentences;"+ "So that the art and practic part of life"+ "Must be the mistress to this theoric:"+ "Which is a wonder how his grace should glean it,"+ "Since his addiction was to courses vain,"+ "His companies unletter'd, rude and shallow,"+ "His hours fill'd up with riots, banquets, sports,"+ "And never noted in him any study,"+ "Any retirement, any sequestration"+ "From open haunts and popularity.","I come no more to make you laugh: things now,"+ "That bear a weighty and a serious brow,"+ "Sad, high, and working, full of state and woe,"+ "Such noble scenes as draw the eye to flow,"+ "We now present. Those that can pity, here"+ "May, if they think it well, let fall a tear;"+ "The subject will deserve it. Such as give"+ "Their money out of hope they may believe,"+ "May here find truth too. Those that come to see"+ "Only a show or two, and so agree"+ "The play may pass, if they be still and willing,"+ "I'll undertake may see away their shilling"+ "Richly in two short hours. Only they"+ "That come to hear a merry bawdy play,"+ "A noise of targets, or to see a fellow"+ "In a long motley coat guarded with yellow,"+ "Will be deceived; for, gentle hearers, know,"+ "To rank our chosen truth with such a show"+ "As fool and fight is, beside forfeiting"+ "Our own brains, and the opinion that we bring,"+ "To make that only true we now intend,"+ "Will leave us never an understanding friend."+ "Therefore, for goodness' sake, and as you are known"+ "The first and happiest hearers of the town,"+ "Be sad, as we would make ye: think ye see"+ "The very persons of our noble story"+ "As they were living; think you see them great,"+ "And follow'd with the general throng and sweat"+ "Of thousand friends; then in a moment, see"+ "How soon this mightiness meets misery:"+ "And, if you can be merry then, I'll say"+ "A man may weep upon his wedding-day.","First, heaven be the record to my speech!"+ "In the devotion of a subject's love,"+ "Tendering the precious safety of my prince,"+ "And free from other misbegotten hate,"+ "Come I appellant to this princely presence."+ "Now, Thomas Mowbray, do I turn to thee,"+ "And mark my greeting well; for what I speak"+ "My body shall make good upon this earth,"+ "Or my divine soul answer it in heaven."+ "Thou art a traitor and a miscreant,"+ "Too good to be so and too bad to live,"+ "Since the more fair and crystal is the sky,"+ "The uglier seem the clouds that in it fly."+ "Once more, the more to aggravate the note,"+ "With a foul traitor's name stuff I thy throat;"+ "And wish, so please my sovereign, ere I move,"+ "What my tongue speaks my right drawn sword may prove.","Now is the winter of our discontent"+ "Made glorious summer by this sun of York;"+ "And all the clouds that lour'd upon our house"+ "In the deep bosom of the ocean buried."+ "Now are our brows bound with victorious wreaths;"+ "Our bruised arms hung up for monuments;"+ "Our stern alarums changed to merry meetings,"+ "Our dreadful marches to delightful measures."+ "Grim-visaged war hath smooth'd his wrinkled front;"+ "And now, instead of mounting barded steeds"+ "To fright the souls of fearful adversaries,"+ "He capers nimbly in a lady's chamber"+ "To the lascivious pleasing of a lute."+ "But I, that am not shaped for sportive tricks,"+ "Nor made to court an amorous looking-glass;"+ "I, that am rudely stamp'd, and want love's majesty"+ "To strut before a wanton ambling nymph;"+ "I, that am curtail'd of this fair proportion,"+ "Cheated of feature by dissembling nature,"+ "Deformed, unfinish'd, sent before my time"+ "Into this breathing world, scarce half made up,"+ "And that so lamely and unfashionable"+ "That dogs bark at me as I halt by them;"+ "Why, I, in this weak piping time of peace,"+ "Have no delight to pass away the time,"+ "Unless to spy my shadow in the sun"+ "And descant on mine own deformity:"+ "And therefore, since I cannot prove a lover,"+ "To entertain these fair well-spoken days,"+ "I am determined to prove a villain"+ "And hate the idle pleasures of these days."+ "Plots have I laid, inductions dangerous,"+ "By drunken prophecies, libels and dreams,"+ "To set my brother Clarence and the king"+ "In deadly hate the one against the other:"+ "And if King Edward be as true and just"+ "As I am subtle, false and treacherous,"+ "This day should Clarence closely be mew'd up,"+ "About a prophecy, which says that 'G'"+ "Of Edward's heirs the murderer shall be."+ "Dive, thoughts, down to my soul: here"+ "Clarence comes.","To bait fish withal: if it will feed nothing else,"+ "it will feed my revenge. He hath disgraced me, and"+ "hindered me half a million; laughed at my losses,"+ "mocked at my gains, scorned my nation, thwarted my"+ "bargains, cooled my friends, heated mine"+ "enemies; and what's his reason? I am a Jew. Hath"+ "not a Jew eyes? hath not a Jew hands, organs,"+ "dimensions, senses, affections, passions? fed with"+ "the same food, hurt with the same weapons, subject"+ "to the same diseases, healed by the same means,"+ "warmed and cooled by the same winter and summer, as"+ "a Christian is? If you prick us, do we not bleed?"+ "if you tickle us, do we not laugh? if you poison"+ "us, do we not die? and if you wrong us, shall we not"+ "revenge? If we are like you in the rest, we will"+ "resemble you in that. If a Jew wrong a Christian,"+ "what is his humility? Revenge. If a Christian"+ "wrong a Jew, what should his sufferance be by"+ "Christian example? Why, revenge. The villany you"+ "teach me, I will execute, and it shall go hard but I"+ "will better the instruction.","Virtue! a fig! 'tis in ourselves that we are thus"+ "or thus. Our bodies are our gardens, to the which"+ "our wills are gardeners: so that if we will plant"+ "nettles, or sow lettuce, set hyssop and weed up"+ "thyme, supply it with one gender of herbs, or"+ "distract it with many, either to have it sterile"+ "with idleness, or manured with industry, why, the"+ "power and corrigible authority of this lies in our"+ "wills. If the balance of our lives had not one"+ "scale of reason to poise another of sensuality, the"+ "blood and baseness of our natures would conduct us"+ "to most preposterous conclusions: but we have"+ "reason to cool our raging motions, our carnal"+ "stings, our unbitted lusts, whereof I take this that"+ "you call love to be a sect or scion.","Blow, winds, and crack your cheeks! rage! blow!"+ "You cataracts and hurricanoes, spout"+ "Till you have drench'd our steeples, drown'd the cocks!"+ "You sulphurous and thought-executing fires,"+ "Vaunt-couriers to oak-cleaving thunderbolts,"+ "Singe my white head! And thou, all-shaking thunder,"+ "Smite flat the thick rotundity o' the world!"+ "Crack nature's moulds, an germens spill at once,"+ "That make ingrateful man!" };}

源码下载:http://download.csdn.net/detail/shark0017/7688143

低版本系统兼容的ActionBar(三)自定义Item视图+进度条的实现+下拉导航+透明ActionBar...相关推荐

  1. 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航

    Tab经常和Fragment结合使用,这一讲我们用3种方式来实现这种快捷导航. 0.重要的两个监听器 MyTabListener,这个我们之前已经接触过了 package com.kale.actio ...

  2. 低版本系统兼容的ActionBar(四)添加Tab+添加自定义的Tab视图+Fragment

    在ActionBar中添加Tab是很有用的技巧.在support V7库的支持下,我们几乎可以用和之前一样的方式来添加Tab,对于Tab来说,我们可以和MenuItem一样,给他定义自己的视图.我这里 ...

  3. android 兼容包(可兼容低版本系统)

    android 兼容包(可兼容低版本系统) 高Level为了兼容低Level版本,从而推出了兼容包android-support-v* 目前发现的只有三个 android-support-v4   a ...

  4. Android实现一键复制粘贴,兼容低版本系统(api 11以下)

    Android实现一键复制粘贴,兼容低版本系统(api11以下) /**         * 实现文本复制功能         * @param content         * @return t ...

  5. MacBook装低版本系统需要的系统包

    MacBook装低版本系统需要的系统包! 前因后果: 老MBP装了Catalina后偶尔有点卡.吃资源厉害,就想降回Sierra. 搜了一天国内网站.发现dmg包很少.而且都是网盘下载(百度云盘居多) ...

  6. html表单居中_如何在IE低版本中兼容HTML5表单属性placeholder属性

    WEB开发数据提交是必不可少的,为了更友好的用户体验,通常需要给输入框一个默认的提示信息.HTML5技术提供了一个表单属性placeholder专门用于输入框默认提示,但是在IE低版本中根本不兼容. ...

  7. Android基础控件——ProgressBar自定义的介绍、动画效果实现、附加三个漂亮的进度条

    ProgressBar自定义的介绍.动画效果实现.附加三个漂亮的进度条 shape属性介绍: corners 圆角   gradient 渐变   padding 内容离边界距离   size 大小 ...

  8. android的三个基础控件,Android基础控件——ProgressBar自定义的介绍、动画效果实现、附加三个漂亮的进度条...

    xml文件: android:centerColor="#00ff00" android:endColor="#0000ff" android:startCol ...

  9. 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9050573  在上一篇文章中,我们只是大概的了解了一下关于ActionBar ...

  10. 安卓第三天笔记--通知-进度条-时期

    安卓第三天笔记--通知-进度条-时期 1.通知Notification 通知就是在是上方的状态栏弹出通知消息 <RelativeLayout xmlns:android="http:/ ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task30.通配符匹配
  2. leetcode算法题--不用加减乘除做加法
  3. vue2.0 + element ui 实现表格穿梭框
  4. django form和model的一些零碎知识
  5. [微信小程序直播平台开发]___(一)介绍与流程
  6. python创建函数、可以接受任意多个整数参数并求和_pythonxlwt:求和函数最大参数限制?...
  7. 2017年07月03号课堂笔记
  8. 操作系统之进程管理:10、信号量机制(整形、记录型)
  9. 【缓存】Redis入门
  10. 解决CUDA driver version is insufficient for CUDA runtime version
  11. sender分析之创建请求
  12. “等等党”的春天到了?高端显卡暴降35% 华强北商家:还会继续降
  13. linux远程登录模拟输入输出重定向,从零开始学习Linux(三十三):Shell基础之输入输出重定向...
  14. python是最美的语言阅读答案_《拯救世界上最美的语言》阅读答案
  15. sql组合索引和独立索引_SQL索引概述和策略
  16. mysql存储过程类_mysql存储过程类
  17. php isnumber 小数点,JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】...
  18. linq where的应用
  19. GCC vector 叠加示例
  20. HTML 页面中点击 a标签实现添加QQ好友功能

热门文章

  1. Apache Kylin PMC 马洪宾:开源,就是一场“螺旋上升”的旅程
  2. Python_爬虫系列_10.各种案例集合
  3. #windowsxpsp3系统MS10-046漏洞测试
  4. xp打开html页面不正常显示不出来,xp打开网页图片加载不出来如何解决
  5. Linux安装git报错make[1]: *** [perl.mak] 错误 2
  6. linux解决依赖性问题
  7. 乱记春秋-或跃在渊 (苏阳飘零记)
  8. 携程四君子:中国最美创业故事
  9. 计算机硬盘无法查找,电脑不认硬盘的原因,怎么解决电脑读不到硬盘?
  10. Spring Cloud Netflix之为上一个damo添加Ribbon(负载均衡优化)