Android中ActionBar以及menu的代码设置样式

menu部分xml代码

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

  <item android:id="@+id/action_search"
   android:title="搜索1"
   android:orderInCategory="100"
   android:showAsAction="always"/>

  <item android:id="@+id/action_search2"
    android:actionViewClass="android.widget.SearchView"
    android:showAsAction="ifRoom|collapseActionView"
    android:orderInCategory="100"
    android:title="搜索2"/>

  <item android:id="@+id/action_share"
    android:title="分享"
    android:orderInCategory="100"
    android:icon="@drawable/ic_action_favor_normal"
    android:showAsAction="never"/>
  <item android:id="@+id/action_collection"
    android:title="收藏"
    android:orderInCategory="100"
    android:showAsAction="never"/>
  <item android:id="@+id/action_font"
    android:title="字体大小"
    android:orderInCategory="100"
    android:showAsAction="never"/>
</menu>

Menu中overflower菜单图标显示实现【重写onMenuOpened方法,使用反射原理】

/**
   * 显示overflower菜单图标
   */
  @Override
  public boolean onMenuOpened(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) {
        }
      }
    }
    return super.onMenuOpened(featureId, menu);
  }

针对Menu菜单中选项的事件监听操作

 /**
 * menu菜单点击操作的监听事件
 */
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
   switch(item.getItemId()){
   case android.R.id.home:
     //finish();
     super.onBackPressed();
     break;
   case R.id.action_add:
     Toast.makeText(this, "添加", Toast.LENGTH_SHORT).show();
     break;
   }
   return super.onOptionsItemSelected(item);
 }

自定义ActionBar

/**
  * 初始化 ActionBar内容
  * */
 private ActionBar actionBar;
 private void initActionBar(){
    actionBar=super.getActionBar();
    actionBar.show();

    //显示Home区域
    actionBar.setDisplayShowHomeEnabled(true);
    //设置home区域回退按钮
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeAsUpIndicator(R.drawable.back_move_details_normal);

    //不显示Home区域标题
    actionBar.setDisplayShowTitleEnabled(true);//
    actionBar.setTitle("新闻");//设置title
    //不显示Logo图片
    actionBar.setDisplayUseLogoEnabled(false);//
    //去除home区域的Icon图标【将icon颜色设置为透明】
    Drawable colorDrawable=new
        ColorDrawable(android.R.color.transparent);
    actionBar.setIcon(colorDrawable);

    //自定义区域
    actionBar.setDisplayShowCustomEnabled(true);
    TextView tvTitle=new TextView(this);//this,当前承载的
    tvTitle.setText("新闻信息");//tvTitle.setId();
    tvTitle.setTextSize(25);
    int colorVal=getResources().getColor(R.color.white);
    tvTitle.setTextColor(colorVal);//tvTitle.setTextColor(Color.WHITE);
    tvTitle.setGravity(Gravity.CENTER);

    LayoutParams layoutParams=
        new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    actionBar.setCustomView(tvTitle,layoutParams);

 }

实现效果:

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • Android折叠式Toolbar使用完全解析(CollapsingToolbarLayout)

    简介 在各种不同的应用中,大家可能会经常见到这样一个效果:Toolbar是透明的,有着一个背景图片以及大标题,随着页面向上滑动,其标题逐渐缩放到Toolbar上,而背景图片则在滑动到一定程度后变成了Toolbar的颜色,这种效果也即是折叠式效果.其实这种效果在GitHub上面已经有很多开源库实现了,但是Google在其推出的Design Library库中也给出了一个这种控件,让我们很方便地实现了这种效果.这个控件是CollapsingToolbarLayout,它是一个增强型的FrameLay

  • Android自定义ActionBar实例

    本文实例讲述了Android自定义ActionBar的实现方法.分享给大家供大家参考.具体实现方法如下: Android 3.0及以上已经有了ActionBar的API,可以通过引入support package在3.0以下的平台引用这些API,但这儿呢,完全自定义一个ActionBar,不用引入额外jar包,参照的是开源的UI组件GreeenDroid,项目主页:https://github.com/cyrilmottier/GreenDroid .提取出关于ActionBar的相关文件,你可

  • Android自定义ViewGroup实现带箭头的圆角矩形菜单

    本文和大家一起做一个带箭头的圆角矩形菜单,大概长下面这个样子: 要求顶上的箭头要对准菜单锚点,菜单项按压反色,菜单背景色和按压色可配置. 最简单的做法就是让UX给个三角形的图片往上一贴,但是转念一想这样是不是太low了点,而且不同分辨率也不太好适配,干脆自定义一个ViewGroup吧! 自定义ViewGroup其实很简单,基本都是按一定的套路来的. 一.定义一个attrs.xml 就是声明一下你的这个自定义View有哪些可配置的属性,将来使用的时候可以自由配置.这里声明了7个属性,分别是:箭头宽

  • Android下拉列表选项框及指示箭头动画

    android原生的Spinner提供了下拉列表选项框,但在一些流行的APP中,原生的Spinner似乎不太受待见,而通常会有下图所示的下拉列表选项框: 初始化状态: 点击弹出下拉选择选项框: 选中后: 注意那个指示箭头,如果把这个控件写的比较精细的话,在下拉-选择-复位过程中箭头是应该有动画旋转效果的. 这种样式的选择框实现方案很多,并且常见.常用,我自己写了一个,我写的这个例子的代码运行结果就是上图所示. 首先是MainActivity.Java: package zhangphil.app

  • android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值

    在项目中,有时候在一些控件(如Button.TextView)中要添加一些符号,如下图所示:                         这个时候可以使用图片的方式来显示,不过这些可以直接使用Unicode码就直接显示出来了. 4个箭头图标的代码如下: <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight=&

  • Android动态修改ToolBar的Menu菜单示例

    Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了. 开始上货 Menu Menu下添加3个Item <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xml

  • Android中ActionBar和ToolBar添加返回箭头的实例代码

     1.ActionBar添加返回箭头 //onCreate方法中 ActionBar actionBar = this.getSupportActionBar(); actionBar.setTitle("搜索功能"); actionBar.setDisplayHomeAsUpEnabled(true); //activity类中的方法 @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.get

  • 灵活使用Android中ActionBar和ViewPager切换页面

    本文实例讲述了Android使用ActionBar和ViewPager切换页面,分享给大家供大家参考.具体如下: 运行效果截图如下: 项目布局如下: 具体代码如下: MainActivity.java代码 import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.

  • android中开启actionbar的两种方法

    两种方法,第一种是静态开启方法 把application 或者 activity的主题设置为Theme.Holo即可 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.baidu.homer" android:versi

  • Android自定义Toolbar使用方法详解

    本篇文章介绍: 如何使用Toolbar; 自定义Toolbar; 先来看一看效果,了解一下toolbar: 布局文件: <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@co

随机推荐