android smartbar适配

1.使用魅族的demo里的SmartBarUtils.java

2.在mainifest中的Application

        android:theme="@android:style/Theme.DeviceDefault.Light"

        android:uiOptions="splitActionBarWhenNarrow" 

3.在基类的activity中:

//代表隐藏头部bar

SmartBarUtils.setActionBarViewCollapsable(getActionBar(), true);

getActionBar().setDisplayOptions(0);

4.在业务的fragment中:

必须先调用下面的代码,才能是fragment里的menu生效

setHasOptionsMenu(true);

@Override

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

inflater.inflate(R.menu.home_menu, menu);

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.menu_home_page:

new AlertDialog.Builder(mAct).setTitle("Action Menu Item")

.setPositiveButton("Yes", null).setNegativeButton("Cancel", null).show();

break;

default:

break;

}

return super.onOptionsItemSelected(item);

}

魅族的反射工具类:

public class SmartBarUtils {

   

    public static void setActionBarTabsShowAtBottom(ActionBar actionbar, boolean showAtBottom) {

        try {

            Method method = Class.forName("android.app.ActionBar").getMethod(

                    "setTabsShowAtBottom", new Class[] { boolean.class });

            try {

                method.invoke(actionbar, showAtBottom);

            } catch (IllegalArgumentException e) {

                e.printStackTrace();

            } catch (IllegalAccessException e) {

                e.printStackTrace();

            } catch (InvocationTargetException e) {

                e.printStackTrace();

            }

        } catch (SecurityException e) {

            e.printStackTrace();

        } catch (NoSuchMethodException e) {

            e.printStackTrace();

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

    }

    

   

    public static void setActionBarViewCollapsable(ActionBar actionbar, boolean collapsable) {

        try {

            Method method = Class.forName("android.app.ActionBar").getMethod(

                    "setActionBarViewCollapsable", new Class[] { boolean.class });

            try {

                method.invoke(actionbar, collapsable);

            } catch (IllegalArgumentException e) {

                e.printStackTrace();

            } catch (IllegalAccessException e) {

                e.printStackTrace();

            } catch (InvocationTargetException e) {

                e.printStackTrace();

            }

        } catch (SecurityException e) {

            e.printStackTrace();

        } catch (NoSuchMethodException e) {

            e.printStackTrace();

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

    }

    

   

    public static void setActionModeHeaderHidden(ActionBar actionbar, boolean hidden) {

        try {

            Method method = Class.forName("android.app.ActionBar").getMethod(

                    "setActionModeHeaderHidden", new Class[] { boolean.class });

            try {

                method.invoke(actionbar, hidden);

            } catch (IllegalArgumentException e) {

                e.printStackTrace();

            } catch (IllegalAccessException e) {

                e.printStackTrace();

            } catch (InvocationTargetException e) {

                e.printStackTrace();

            }

        } catch (SecurityException e) {

            e.printStackTrace();

        } catch (NoSuchMethodException e) {

            e.printStackTrace();

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

    }

    

时间: 2024-09-30 03:36:48

android smartbar适配的相关文章

一种粗暴快速的Android全屏幕适配方案

本文讲的是一种粗暴快速的Android全屏幕适配方案,由于Android碎片化严重,屏幕适配一直是开发中较为头疼的问题.面对市面上五花八门的屏幕大小与分辨率,Android基于dp与res目录名称来适配的方案已无法满足一次编写全屏幕适配的需求,为了达到最优的视觉效果,开发过程中总是需要花费较多资源进行适配.也有开发者给出了一些自己的解决方案.首先来分析一下一些常见的解决方案的现状: 1. 官方适配方案 – dp.dp是Android开发中特有的一个单位.与px不同,dp是基于屏幕像素密度的一种单

图片-Android屏幕适配问题,菜鸟求助

问题描述 Android屏幕适配问题,菜鸟求助 如题, 本人菜鸟不知道怎么屏幕适配呀, 我用的是demin建立了两个文件, 一个是(1280x720的),另外一个是1920x1080的. 在里面写的尺寸.因为我们美工给我的图片都是px的. 换算如下 解决方案 做android开发,开源嘛,满市场都是凌乱的机型,总少不了适配这样或那样的型号.在这里分享一下自己在开发中用到的方法. 首先要介绍一下drawable-mdpi.drawable-hdpi-1280x800.drawable-hdpi.这

android网络图片适配不同分辨率屏幕

问题描述 android网络图片适配不同分辨率屏幕 需要在android手机上面显示网络图片,但是手机的分辨率是有不同的,有mdpi,ldpi,hdpi,xhdpi等多种分辨率,怎么让图片在每个手机上面显示都是和屏幕一样宽.是让手机传不同的分辨率给服务器,服务器返回不同的图片,还是怎么做?求解答! 解决方案 一般是传参数告诉服务器是什么类型的,服务器返回不同的图片还有就是比如新浪Open API的那些图像分为middle,large,small等去获取

android 屏幕适配问题

问题描述 android 屏幕适配问题 我写了4中尺寸的适配,但是每次都是跳到hdpi这边,不知道怎么回事,用了高分辨率的 手机和低分辨率的都是一样效果 解决方案 如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情. ? 首先:你需要在AndroidManifest.xml文件的<manifest>元素如下添加子元素 <supports-screens android:largeScreens="true

android-有关于Android屏幕适配

问题描述 有关于Android屏幕适配 请问一下各位牛人,分辨率为1280x800的手机匹配不到values-1280x800的资源呢? 解决方案 10.1" WXGA(Tablet) 1280×800 解决方案二: 谢谢回答!但是我没看明白!

实用Android 屏幕适配方案分享

转载地址:http://blog.csdn.net/gao_chun/article/details/45645051 真正可用,并且简单易行,可以在多个屏幕大小和屏幕密度上有良好表现的Android 屏幕适配方案,已用在一款成熟互联网应用中,效果还不错. 说起android开发,UI界面的多机型适配,一向是个很重要的问题. 网上这方面的文章很多,面试的时候也经常会问到,大部分的内容都很类似,无外乎用dp,sp 不要用px之类老生常谈的问题. 但是会说的居多,实际可以执行的可行方案,很少有人会.

Android屏幕适配全攻略(最权威的官方适配指导)

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获! Android屏幕适配出现的原因 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 dpdipdpisppx mdpihdpixdpixxdpi 解决方案 支持

Android屏幕适配

http://www.apkbus.com/android-41832-1-1.html 图像显示所需的概念: 像素:一幅图片的显示就是由许多显示着不同颜色的小方格组成的,这样的小方格就被称为像素,是构成图片的最小单位.但是这个像素的具体大小是多少呢?这需要取决于显示这张图片的具体的物理设备显示一个图片像素点的荧光点的大小.图片文件只是记录着它自身有多少个像素点,每个像素点显示什么颜色,至于它自身物理尺寸有多大,它自身也无法得知,例如一张480*800像素的图片在电脑显示器上显示明显要比在手机屏

Android多分辨率适配框架(3)— 使用指南

探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View