meizu mx适配

AndroidManifest.xml

    <uses-sdk android:minSdkVersion="11" />
    <application android:uiOptions="splitActionBarWhenNarrow" >


下面这行用于代码中动态判断版本,你可以用自己的解决方案

        <meta-data
            android:name="sf_icon"
            android:value="meizu" />



Tools.java

  

    /**
     * Get value of a meta from Manifest
     * 
     * @param context
     * @return
     */
    public static String getMeta(Context context, final String name) {
        String str = "";

        ApplicationInfo ai = null;
        try {
            ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
            Object v = ai.metaData.get(name);
            if (v != null) {
                str = v.toString();
            }
        } catch (NameNotFoundException e) {
            LogUtils.e(e);
        }

        return str;
    }


    /**
     * 判断是否为魅族专版(tab显示不同于普通版)
     * 
     * @param context
     * @return
     */
    public static boolean isMeizu(Context context) {
        String sf = Tools.getMeta(context, Constants.META_SF_ICON);


        if (sf.equals("meizu")) {
            return true;
        }


        return false;
    }


xxxActivity.java

    private boolean isMeizu = false;


    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        
        isMeizu = Tools.isMeizu(getApplicationContext());

        if (isMeizu) {
            // 设置若顶栏没有显示内空,则隐藏
            SmartBarUtils.setActionBarViewCollapsable(getActionBar(), true);
            getActionBar().setDisplayOptions(0);
        } else {
            requestWindowFeature(Window.FEATURE_NO_TITLE);
        }

        setContentView(R.layout.main);

        if (isMeizu) {
            getTabWidget().setVisibility(View.GONE);
        }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        if (isMeizu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.tab_menu, menu);
        }

        return true;
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        for (int i = 0; i < menu.size(); i++) {
            refreshTabIcon(menu.getItem(i), getTabHost().getCurrentTab());
        }
        return super.onPrepareOptionsMenu(menu);
    }

    private void refreshTabIcon(MenuItem item, int currentTab) {
        if (item.getGroupId() == R.id.tab_group) {
            switch (item.getItemId()) {
            case R.id.tab_yuanfen:
                item.setIcon(currentTab == TAB_TAG_INDEX_YUANFEN ? R.drawable.yuanfen_foucs
                        : R.drawable.yuanfen);
                break;
            case R.id.tab_search_love:
                item.setIcon(currentTab == TAB_TAG_INDEX_SEARCH_LOVE ? R.drawable.search_love_foucs
                        : R.drawable.search_love);
                break;
            case R.id.tab_msgbox:
                item.setIcon(currentTab == TAB_TAG_INDEX_MSG_BOX ? R.drawable.msg_box_foucs
                        : R.drawable.msg_box);
                break;
            case R.id.tab_space:
                item.setIcon(currentTab == TAB_TAG_INDEX_SPACE ? R.drawable.space_foucs
                        : R.drawable.space);
                break;
            case R.id.tab_more:
                item.setIcon(currentTab == TAB_TAG_INDEX_MORE ? R.drawable.more_foucs
                        : R.drawable.more);
                break;
            default:
                break;
            }
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getGroupId() == R.id.tab_group) {
            int index=-1;
            switch (item.getItemId()) {
            case R.id.tab_yuanfen:
            {
                getTabHost().setCurrentTab(TAB_TAG_INDEX_YUANFEN);
                index=0;
            }
                break;
            case R.id.tab_search_love:
            {
                getTabHost().setCurrentTab(TAB_TAG_INDEX_SEARCH_LOVE);
                index=1;
            }
                break;
            case R.id.tab_msgbox:
            {
                getTabHost().setCurrentTab(TAB_TAG_INDEX_MSG_BOX);
                index=2;
            }
                break;
            case R.id.tab_space:
            {
                getTabHost().setCurrentTab(TAB_TAG_INDEX_SPACE);
                index=3;
            }
                break;
            case R.id.tab_more:
            {
                getTabHost().setCurrentTab(TAB_TAG_INDEX_MORE);
                index=4;
            }
                break;
            default:
                break;
            }
            invalidateOptionsMenu();
            if (index != -1) {
                backToFirst(index);
            }

        }
        return super.onOptionsItemSelected(item);
    }





  tab_menu.xml

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
	<group android:id="@+id/tab_group">
	    <item
	        android:id="@+id/tab_yuanfen"
	        android:showAsAction="always|withText"
	        android:title="@string/YUAN_FEN_STR"/>
	    <item
	        android:id="@+id/tab_search_love"
	        android:showAsAction="always|withText"
	        android:title="@string/SEARCH_LOVE_STR"/>
	    <item
	        android:id="@+id/tab_msgbox"
	        android:showAsAction="always|withText"
	        android:title="@string/MESSAGE_BOX_STR"/>
	    <item
            android:id="@+id/tab_space"
            android:showAsAction="never|withText"
            android:title="@string/SPACE_STR"/>
        <item
            android:id="@+id/tab_more"
            android:showAsAction="never|withText"
            android:title="@string/MORE_STR"/>
 	</group>
 	
   
</menu>





ss


sss

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值