让一个视图浮动在你的应用程序之上

package com.wuba.activity.base;

import android.content.Context;
import android.content.Intent;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

import com.wuba.R;
import com.wuba.activity.main.MainActivity;
import com.wuba.common.Constant;


public class MenuAndTabActivity extends MenuActivity{

protected LinearLayout FastTabMainLinearLayout;
private RelativeLayout RelativeLayoutTab00;
private RelativeLayout RelativeLayoutTab01;
private RelativeLayout RelativeLayoutTab02;
private RelativeLayout RelativeLayoutTab03;
private RelativeLayout RelativeLayoutTab04;

private boolean isadded = false;
private View view;

public void onCreate(Bundle bundle) {
super.onCreate(bundle);
}

@Override
public boolean onMenuOpened(int featureId, Menu menu) {
showFakeTitleBar();
return super.onMenuOpened(featureId, menu);
}

@Override
public void onOptionsMenuClosed(Menu menu) {
hideFakeTitleBar();
super.onOptionsMenuClosed(menu);
}

@Override
public void onStart() {
super.onStart();

view = getLayoutInflater().inflate(R.layout.fast_tab, null);

MenuAndTabListener mtListener = new MenuAndTabListener();
FastTabMainLinearLayout = (LinearLayout) view.findViewById(R.id.FastTabMainLinearLayout);

RelativeLayoutTab00 = (RelativeLayout) view.findViewById(R.id.RelativeLayoutTab00);
RelativeLayoutTab00.setTag(Integer.parseInt("0"));
RelativeLayoutTab00.setOnClickListener(mtListener);

RelativeLayoutTab01 = (RelativeLayout)view. findViewById(R.id.RelativeLayoutTab01);
RelativeLayoutTab01.setTag(Integer.parseInt("1"));
RelativeLayoutTab01.setOnClickListener(mtListener);

RelativeLayoutTab02 = (RelativeLayout) view.findViewById(R.id.RelativeLayoutTab02);
RelativeLayoutTab02.setTag(Integer.parseInt("2"));
RelativeLayoutTab02.setOnClickListener(mtListener);

RelativeLayoutTab03 = (RelativeLayout) view.findViewById(R.id.RelativeLayoutTab03);
RelativeLayoutTab03.setTag(Integer.parseInt("3"));
RelativeLayoutTab03.setOnClickListener(mtListener);

RelativeLayoutTab04 = (RelativeLayout) view.findViewById(R.id.RelativeLayoutTab04);
RelativeLayoutTab04.setTag(Integer.parseInt("4"));
RelativeLayoutTab04.setOnClickListener(mtListener);
}

private class MenuAndTabListener implements android.view.View.OnClickListener {
final MenuAndTabActivity mtActivity;
public void onClick(View view) {
Intent intent = new Intent();
Bundle bundle = new Bundle();
switch ((Integer)view.getTag()) {
case 0:
bundle.putString(Constant.TABINDEX, "0");
MainActivity.CURRENT_TAB = 0;
break;
case 1:
bundle.putString(Constant.TABINDEX, "1");
MainActivity.CURRENT_TAB = 1;
break;
case 2:
bundle.putString(Constant.TABINDEX, "2");
MainActivity.CURRENT_TAB = 2;
break;
case 3:
bundle.putString(Constant.TABINDEX, "3");
MainActivity.CURRENT_TAB = 3;
break;
case 4:
bundle.putString(Constant.TABINDEX, "4");
MainActivity.CURRENT_TAB = 4;
break;
default:
break;
}
intent.putExtras(bundle);
intent.setClass(MenuAndTabActivity.this, MainActivity.class);
MenuAndTabActivity.this.startActivity(intent);
}
MenuAndTabListener() {
super();
mtActivity = MenuAndTabActivity.this;
}
}

private void hideFakeTitleBar(){
android.view.WindowManager.LayoutParams layoutparams = new android.view.WindowManager.LayoutParams(
-1,
-1,
WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE ,
-1);
layoutparams.gravity = 48;
layoutparams.y = 25;
WindowManager windowmanager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
View view1 = view;
windowmanager.updateViewLayout(view1, layoutparams);
View view2 = view;
windowmanager.removeView(view2);
isadded = false;
}

private void showFakeTitleBar(){
//让一个视图浮动在你的应用程序之上
View view1 = getWindow().peekDecorView();
WindowManager windowmanager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
android.view.WindowManager.LayoutParams layoutparams = new android.view.WindowManager.LayoutParams(
200,//浮动的大小 宽
300, //浮动的 高
WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE ,
-1);
layoutparams.gravity = 48;
Rect rect = new Rect();
view1.getWindowVisibleDisplayFrame(rect);
int i = rect.top;
layoutparams.y = i;
try
{
if (isadded)
{
windowmanager.removeView(view);
}
}
catch (Exception e)
{
//
}
windowmanager.addView(view, layoutparams);
isadded = true;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值