`
月下独酌
  • 浏览: 130272 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

smartwindow

 
阅读更多
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />

适用android2.x 在应用程序中自定义dialog,复制dialog.java到应用程序中并修改方法
 public void setContentView(int layoutResID) {
        mWindow.requestFeature(Window.FEATURE_NO_TITLE);
        mWindow.setContentView(layoutResID);
    }
    public void setContentView(View view) {
    	mWindow.requestFeature(Window.FEATURE_NO_TITLE);
        mWindow.setContentView(view);
    }
    public void setContentView(View view, ViewGroup.LayoutParams params) {
    	mWindow.requestFeature(Window.FEATURE_NO_TITLE);
    	mWindow.setContentView(view, params);
    }
    public void show(boolean focusable) {
        if (mShowing) {
            if (mDecor != null) {
                mDecor.setVisibility(View.VISIBLE);
            }
            return;
        }
        if (!mCreated) {
            dispatchOnCreate(null);
        }
        onStart();
        mDecor = mWindow.getDecorView();
        WindowManager.LayoutParams l = mWindow.getAttributes();
        if ((l.softInputMode
                & WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION) == 0) {
            WindowManager.LayoutParams nl = new WindowManager.LayoutParams();
            nl.copyFrom(l);
            nl.softInputMode |=
                    WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION;
            l = nl;
        }
        l.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT 
        		| WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
        l.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
        		| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
        if (!focusable) {
        	l.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL 
        	| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
        }
        try {
            mWindowManager.addView(mDecor, l);
            mShowing = true;
            sendShowMessage();
        } finally {
        }
    }
    private static final String POLICY_IMPL_CLASS_NAME =
        "com.android.internal.policy.impl.Policy";
    private static final Object sPolicy;
    private static final Class policyClass;
    static {
        // Pull in the actual implementation of the policy at run-time
        try {
            policyClass = Class.forName(POLICY_IMPL_CLASS_NAME);
            sPolicy = policyClass.newInstance();
        } catch (ClassNotFoundException ex) {
            throw new RuntimeException(
                    POLICY_IMPL_CLASS_NAME + " could not be loaded", ex);
        } catch (InstantiationException ex) {
            throw new RuntimeException(
                    POLICY_IMPL_CLASS_NAME + " could not be instantiated", ex);
        } catch (IllegalAccessException ex) {
            throw new RuntimeException(
                    POLICY_IMPL_CLASS_NAME + " could not be instantiated", ex);
        }
    }
    public SmartWindow(Context context, int theme) {
    	//由于SmartWindow的生命周期有可能会超出调用它的对象(Activity,Service)
    	//比如Activity已经finish掉了,但是SmartWindow没有dismiss掉,
    	//则会导致内存泄漏,因此这里强制使用ApplicationContext
        mContext = new ContextThemeWrapper(
        		context.getApplicationContext(), theme == 0 ? android.R.style.Theme_InputMethod : theme);
        mWindowManager = (WindowManager)context.getApplicationContext().getSystemService("window");
		Window w = null;
		try {
			Method m = policyClass.getMethod("makeNewWindow", Context.class);
			w = (Window)m.invoke(sPolicy, mContext);
		} catch (IllegalArgumentException e) {
			Log.e(TAG, e.getMessage()+"");
		} catch (IllegalAccessException e) {
			Log.e(TAG, e.getMessage()+"");
		} catch (InvocationTargetException e) {
			Log.e(TAG, e.getMessage()+"");
		} catch (SecurityException e) {
			Log.e(TAG, e.getMessage()+"");
		} catch (NoSuchMethodException e) {
			Log.e(TAG, e.getMessage()+"");
		}
        mWindow = w;
        w.setCallback(this);
        w.setWindowManager(mWindowManager, null, null);
        w.setGravity(Gravity.CENTER);
        mUiThread = Thread.currentThread();
        mListenersHandler = new ListenersHandler(this);
    }
 
分享到:
评论

相关推荐

    SmartBits之SmartWindow使用

    SmartWindow 在 SmartBits 之中的应用 SmartWindow 是一款功能强大的报文模拟工具,通过与 SmartBits 设备的结合,可以对报文进行自定义编辑、发送和接收等操作。在本文档中,我们将探索 SmartWindow 在 SmartBits ...

    smartwindow测试指导手册

    ### Smartwindow测试指导手册知识点概览 #### 一、Smartwindows概述 - **定义与功能**:Smartwindows是smartbits测试仪的主要工具软件,用于构造从第2层到第4层的数据包,并按照预设的测试用例进行发送、接收和...

    SmartWindow_10.00

    《SmartBits底层操作软件SmartWindow_10.00详解》 在信息技术领域,网络通信设备的测试与优化是至关重要的环节,而SmartBits作为业界知名的网络性能测试工具,其配套的底层操作软件SmartWindow_10.00在该领域扮演了...

    SmartWindow_10.00.zip

    《SmartBits底层操作软件SmartWindow 10.00详解》 在信息技术领域,网络通信设备的测试与优化是至关重要的环节,SmartBits便是这样的专业工具。本文将深入解析SmartBits底层操作软件SmartWindow 10.00,探讨其功能...

    Smart Window

    标题“Smart Window”所指的是一个智能窗户控制系统,它利用了微控制器技术,可能是51单片机或Arduino单片机,来实现智能化的功能。这样的系统对于电子爱好者,尤其是那些正在进行课程设计或项目开发的人来说,具有...

    SmartWindow用户指导手册(英文版本)

    ### SmartWindow用户指导手册知识点概览 #### 一、SmartWindow概述 **SmartWindow**是一款专为开发者和质量保证(QA)人员设计的高度有效的前端图形用户界面(GUI)。该工具主要用于创建传统测试和定制测试。它...

    思博伦测试仪application 软件包 windows 原版安装程序

    该软件复刻了思博伦 spirent的smart window.基于DPDK技术,性能直达14Mpps+/10Gbps.比开源软件性能,发送精度高的多,同时内置友好的用户界面对报文进行编辑..http://docs.minismb.com 有更细的文档资料.

    Smartbtis 配置资料

    - "SmartWindow简介.doc":SmartWindow是Smartbits的图形用户界面,这份文档会解释如何通过SmartWindow进行测试配置和监控。 - "SmartApplications简介.doc":SmartApplications是一系列预定义的应用测试模板,涵盖...

    智能ABC窗口.rar_SmartWindow read_button_caption_移动窗口法_输入法

    高级顶层窗口是一种无标题栏、菜单、工具条的一种常居顶层的窗口,最常见的例子就是输入法窗口,比如智能ABC窗口。这类窗口的特点除了上边所说的,最重要的就是窗口移动。普通窗口移动是通过标题栏由系统自动实现的...

    SmartWindowNote

    SmartWindowNote是关于SmartWindow操作方法的文档,SmartWindow是一种被广泛使用的软件或系统,其最新的版本为SmartWindow 10.00。此文档提供了最新的技术信息,包括SmartWindow10.00支持的硬件和软件、新功能、已...

    smartWindow:太阳能智能窗户,可检测阳光照射量并改变一块电致变色膜的不透明度

    这是节点js服务器代码和smartWindow项目的Energia代码的存储库。 为了在本地计算机上运行这些文件,您必须创建一个本地事件库,因为Energia没有官方的事件库。 要创建此库,请在$ USER / Documents / Energia / ...

    SmartWindow:Smart Window 是一款面向机场乘客的移动应用程序 #hackandfly - 2015 年 6 月

    智能窗口 Smart Window 是一款面向机场乘客的移动应用程序 #hackandfly - 2015 年 6 月

    smartwindows 注册码 使用手册

    smartwindows软件 测试仪 包含注册码 和 使用手册

    Smartbits基本软件

    1. `SmartWindow_9.50版本.exe`:这很可能是Smartbits的图形用户界面(GUI)应用程序,名为SmartWindow,版本为9.50。用户通过这个界面可以配置测试脚本、启动和监控测试,并查看结果报告。 2. `pwd.txt`:可能包含了...

    思博伦测试仪application 软件

    该软件复刻了思博伦 spirent的smart window.基于DPDK技术,性能直达14Mpps+/10Gbps.比开源软件性能,发送精度高的多,同时内置友好的用户界面对报文进行编辑..http://docs.minismb.com 有更细的文档资料.

    C#联合halcon海康威视相机(缩放,平移)实现模板匹配

    1.定义相机对象,可以实现图像缩放平移,有些smartwindow 不稳定,可以换成Hwindcontrol控件显示 public Form1() { InitializeComponent(); hwindow = hSmartWindowControl1.HalconWindow;//初始化窗口变量s w...

    OCTEON-SDK-3.1.2-568.i386.rpm

    该软件复刻了思博伦 spirent的smart window.基于DPDK技术,性能直达14Mpps+/10Gbps.比开源软件性能,发送精度高的多,同时内置友好的用户界面对报文进行编辑..http://docs.minismb.com 有更细的文档资料.

    C#联合halcon海康威视相机(缩放,平移)实现模板匹配,+ C#联合halcon打开海康威视相机(图像可缩放,平移)

    1.定义相机对象,可以实现图像缩放平移,有些smartwindow 不稳定,可以换成Hwindcontrol控件显示 public Form1() { InitializeComponent(); hwindow = hSmartWindowControl1.HalconWindow;//初始化窗口变量s w_...

Global site tag (gtag.js) - Google Analytics