`
woshiwzy
  • 浏览: 29387 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
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;
}

}
分享到:
评论

相关推荐

    ISHHoverBar:在iOS 10 Maps应用程序中看到的浮动UIToolBar替代品,同时支持垂直和水平方向

    ISHHoverBar 在iOS 10 Maps应用程序中可以看到浮动的UIToolBar替代品,同时支持垂直和水平方向。 它旨在将鼠标悬停在您的内容之上,并且可以与自动布局很好地配合使用。 将其与结合以创建类似于iOS 10 Maps应用程序...

    xfpopup:xamarin.forms.view的弹出窗口(浮动)

    尽管该框架看起来很让人望而却步,但对于我们要开发一个好的应用程序来说,它仍然缺少一些基本的东西。 一种将视图浮动到其他视图之上的方法就是其中之一。 我们的要求是: 这必须具有本机性能这必须足够灵活以显示...

    Android库可创建可自定义的浮动动画吐司,例如在Clash Royale应用程序中-Android开发

    FloatingToast-Android一个用于制作可定制的浮动动画吐司的android库入门在您的build.gradle依赖项中{实现'hari.floatingtoast:floatingtoast:0.1.0'} FloatingToast-Android一个用于制作可定制的浮动动画吐司的...

    FloatingViewService

    这是一个简单的示例,说明如何创建一个位于所有其他应用程序之上且独立于任何活动的视图。 为了创建您自己的覆盖层,只需创建一个扩展 AbstractOverlayService 并覆盖所需方法的服务。 就是*那*容易! :P 附加功能 ...

    【最新版】QOwnNotes-20.4.4.dmg【亲测可用】最好的突出显示,彩色标签和子文件夹来编辑笔记

    要从您的移动设备访问Nextcloud / ownCloud笔记,您可能需要获取以下应用程序之一: Android的Nextcloud Notes(第三方) iOS的CloudNotes(第三方) 在Android上,您还可以使用任何同步工具(如Synchronize ...

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    NetSupport School 课堂管理软件(简体中文版)

    兼容 iPad、iPod、iPhone、Android 平板电脑和智能手机,在某一设备上安装后,该应用程序可与 NetSupport 桌面教师端软件配合,使教师能够自由地在教室周围走动,有助于保持主要控制功能和监视所有学生工作站。...

    java源码包---java 源码 大量 实例

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    java源码包2

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    VC程序开发之窗体与界面设计(2)

    实例005 在控件上单击右键弹出菜单 10 实例006 个性化的弹出菜单 11 实例007 任务栏托盘弹出菜单 13 1.3 工具栏应用实例 15 实例008 带背景的工具栏 15 实例009 带图标的工具栏 16 实例010 带下拉菜单...

    java源码包3

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    java源码包4

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。...

    C#源码大集合 02(共3卷)

    │ │ ├─第1讲 开发你的第一个MDI应用程序 │ │ ├─第2讲 转轮控件 │ │ ├─第3讲 注册表浏览器 │ │ ├─第5讲 进程跟踪器 │ │ ├─第6讲 消息队列的简单实例 │ │ ├─第7讲 进度条、状态栏和计时器的...

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 django的一个简单应用 07 django静态文件之static 08 django的url控制系统 09 django的urlConf补充 第50章 01 django之视图函数的介绍 02 django视图之redirec 03 django模板之变量 04 django模板之过滤器 05 ...

    C#源码大集合 01(共3卷)

    │ ├─第11讲 浮动的窗体 │ │ ├─第12讲 计算器实例程序 │ │ ├─第1讲 开发你的第一个MDI应用程序 │ │ ├─第2讲 转轮控件 │ │ ├─第3讲 注册表浏览器 │ │ ├─第5讲 进程跟踪器 ...

    C#源码大集合 03(共3卷)

    │ ├─第11讲 浮动的窗体 │ │ ├─第12讲 计算器实例程序 │ │ ├─第1讲 开发你的第一个MDI应用程序 │ │ ├─第2讲 转轮控件 │ │ ├─第3讲 注册表浏览器 │ │ ├─第5讲 进程跟踪器 ...

Global site tag (gtag.js) - Google Analytics