Android WindowManager for floating windows (i)--binding with current activity

Source: Internet
Author: User
<span id="Label3"></p><p><p><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Recently there are students to do graduation design, want to use the effect of suspension window, in fact, we can do this through the system service windowmanager, This chapter we will try to create a suspended view above the current Activity.</span></p></p><strong><strong><span style="font-family: ‘Microsoft YaHei‘; font-size: 16px; color: #ffffff; background-color: #ff9900;">first step: know WindowManager</span></strong></strong> <blockquote> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L This interface is used to interact with window manager (windows manager, application Framework layer).</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L can obtain an instance of WM by Getsystemservice (context.window_service).</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L Inheritance Relationship</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Public interface WindowManager implements Viewmanager</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L belongs to the package</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Android.view.WindowManager</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L Important Methods</span></p></p> <p style="margin-left: 30px;" align="left"><p style="margin-left: 30px;" align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">AddView () Add View</span></p></p> <p style="margin-left: 30px;" align="left"><p style="margin-left: 30px;" align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Removeview () Delete View</span></p></p> <p style="margin-left: 30px;" align="left"><p style="margin-left: 30px;" align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Updateviewlayout () Change the view parameters</span></p></p> </blockquote><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">  </span></span><span style="font-family: ‘Microsoft YaHei‘;"><span style="text-decoration: underline;"><span style="text-decoration: underline;">Window Manager Service</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">is global and Unique. </span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;"> </span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">It takes the User's actions, translates them into instructions, and sends them to the various</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">Window</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">. </span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">Activity</span></span><span style="text-decoration: underline;">the <span style="text-decoration: underline;">top-level controls are registered to</span> the</span><span style="text-decoration: underline;"><span style="text-decoration: underline;">Window Manager</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">when the user really touches the screen or keyboard,</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">Window Manager</span></span><span style="text-decoration: underline;">Will be <span style="text-decoration: underline;">notified, and when the control has some requests, it will be</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">viewparent</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">sent back to</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">Window Manager</span></span><span style="text-decoration: underline;"><span style="text-decoration: underline;">The. Thus completing the entire communication process</span></span></span></p><p align="left"><p align="left"><span style="text-decoration: underline; font-family: ‘Microsoft YaHei‘; font-size: 14px;"></span></p></p><span style="font-size: 16px;"><span style="font-size: 16px;"><strong><span style="font-family: ‘Microsoft YaHei‘; color: #ffffff; background-color: #ff9900;">step two: Rewrite the Ontouchevent method of ImageView</span></strong></span></span><p><p><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">The previous step we know WindowManager can add, delete, change view, then want to achieve the drag effect of the suspended window we will get the coordinates of the ImageView Position.</span></p></p> <blockquote> <p><p><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Gets the coordinates of the relative screen, which is the origin point in the upper-left corner of the screen</span></p></p> <p><p><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">float x = event.getrawx ();</span></p></p> <p><p><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Float y = Event.getrawy ()-25; 25 is the height of the system status bar</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L set x, y through Windowmanager.layoutparams wmparams</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">wmparams.x= (int) (x-mtouchstartx);</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">wmparams.y= (int) (y-mtouchstarty);</span></p></p> <p align="left"><p align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L Then set the current position of the suspended window through the Updateviewlayout () method</span></p></p> </blockquote><span style="color: #ffffff; background-color: #ff9900;"><span style="color: #ffffff; background-color: #ff9900;"><strong><span style="font-family: ‘Microsoft YaHei‘; font-size: 16px;">Step three: Join Permissions</span></strong></span></span><p><p><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">Add the following permissions to the Androidmanifest.xml:</span></p></p><pre><pre><span style="color: #0000ff;"><</span><span style="color: #800000;"></span><span style="color: #ff0000;">android:name</span><span style="color: #0000ff;">= "android.permission.SYSTEM_ALERT_WINDOW"</span><span style="color: #0000ff;">/></span></pre></pre><p style="margin-left: 30px;"><p style="margin-left: 30px;"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">The effect is as Follows:</span></p></p><p><p><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;"></span></p></p><p style="margin-left: 30px;"><p style="margin-left: 30px;"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px; color: #3366ff;"><strong>Important Code</strong> <strong> :   </strong> <strong>Create</strong> <strong>MyApplication</strong></span></p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.Application;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.WindowManager;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span>MyApplication<span style="color: #0000ff;"><span style="color: #0000ff;">extends</span></span><span style="color: #000000;"><span style="color: #000000;">Application {</span></span><span style="color: #008000;"><span style="color: #008000;">/**</span></span><span style="color: #008000;"><span style="color: #008000;">* Create global variables * Note the application node in Androidmanifest.xml add Android:name= ". MyApplication "properties *</span></span><span style="color: #008000;"><span style="color: #008000;">*/</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span>Windowmanager.layoutparams wmparams=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Windowmanager.layoutparams (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span><span style="color: #000000;"><span style="color: #000000;">windowmanager.layoutparams getmywmparams () {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span><span style="color: #000000;"><span style="color: #000000;">wmparams; }}</span></span></pre><p style="margin-left: 30px;" align="left"><p style="margin-left: 30px;" align="left"><strong><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px; color: #3366ff;">Create a custom view inheritance ImageView</span></strong></p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.content.Context;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.util.Log;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.MotionEvent;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.WindowManager;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.ImageView;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span>Myfloatview<span style="color: #0000ff;"><span style="color: #0000ff;">extends</span></span><span style="color: #000000;"><span style="color: #000000;">ImageView {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">mtouchstartx; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">mtouchstarty; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">x; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">float</span></span><span style="color: #000000;"><span style="color: #000000;">y; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span>WindowManager wm=<span style="color: #000000;"><span style="color: #000000;">(windowmanager) getcontext (). getapplicationcontext (). getsystemservice (context.window_service); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">This wmparams is the obtained global variable that holds the properties of the suspended window</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span>Windowmanager.layoutparams Wmparams =<span style="color: #000000;"><span style="color: #000000;">((myapplication) getcontext (). getapplicationcontext ()). getmywmparams (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span><span style="color: #000000;"><span style="color: #000000;">Myfloatview (context Context) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">(context); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">TODO auto-generated Constructor stub</span></span><span style="color: #000000;"><span style="color: #000000;">} @Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">Boolean</span></span><span style="color: #000000;"><span style="color: #000000;">ontouchevent (motionevent Event) {</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">gets the coordinates of the relative screen, which is the origin point in the Upper-left corner</span> of the screen</span>x =<span style="color: #000000;"><span style="color: #000000;">event.getrawx (); Y</span></span>= Event.getrawy ()-25;<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">25 is the height of the system status bar</span></span>LOG.I ("currp", "currx" +x+ "====curry" +<span style="color: #000000;"><span style="color: #000000;">y); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Switch</span></span><span style="color: #000000;"><span style="color: #000000;">(event.getaction ()) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">motionevent.action_down:</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">gets the coordinates of the relative view, which is the origin point in the upper left corner of the view</span></span>Mtouchstartx =<span style="color: #000000;"><span style="color: #000000;">Event.getx (); Mtouchstarty</span></span>=<span style="color: #000000;"><span style="color: #000000;">event.gety (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">MotionEvent.ACTION_MOVE:updateViewPosition (); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> case</span><span style="color: #000000;"><span style="color: #000000;">MotionEvent.ACTION_UP:updateViewPosition (); Mtouchstartx</span></span>=mtouchstarty=0<span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> break</span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">true</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">updateviewposition () {</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Update floating window position Parameters</span></span>Wmparams.x= (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>) (x-<span style="color: #000000;"><span style="color: #000000;">mtouchstartx); Wmparams.y</span></span>=(<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>) (y<span style="color: #000000;"><span style="color: #000000;">mtouchstarty); Wm.updateviewlayout (</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">, wmparams); }}</span></span></pre><p style="margin-left: 30px;" align="left"><p style="margin-left: 30px;" align="left"><span style="color: #3366ff; font-size: 14px;"><strong><span style="font-family: ‘Microsoft YaHei‘;">Create activity</span></strong></span></p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.Activity;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.content.Context;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.graphics.PixelFormat;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.os.Bundle;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.util.Log;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.Gravity;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.View;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.WindowManager;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.View.OnClickListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.WindowManager.LayoutParams;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span>Myfloatviewactivity<span style="color: #0000ff;"><span style="color: #0000ff;">extends</span></span><span style="color: #000000;"><span style="color: #000000;">activity{</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span>WindowManager wm=<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span>Windowmanager.layoutparams wmparams=<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span>Myfloatview myfv=<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">; @Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">onCreate (Bundle Savedinstancestate) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">. OnCreate (savedinstancestate); Setcontentview (r.layout.main); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Create a hover window</span></span><span style="color: #000000;"><span style="color: #000000;">CreateView (); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">CreateView () {MYFV</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Myfloatview (getapplicationcontext ()); Myfv.setimageresource (r.drawable.angry_birds); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Get WindowManager</span></span>wm=<span style="color: #000000;"><span style="color: #000000;">(windowmanager) getapplicationcontext (). getsystemservice (context.window_service); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">set Layoutparams (global variables) related parameters</span></span>Wmparams =<span style="color: #000000;">( <span style="color: #000000;">(myapplication) getapplication ()). getmywmparams (); Wmparams.type</span></span>=layoutparams.type_phone;<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Set Window type</span></span>wmparams.format=pixelformat.rgba_8888;<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">format picture, effect is transparent background</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Set window Flag</span></span>wmparams.flags=<span style="color: #000000;"><span style="color: #000000;">Layoutparams.flag_not_touch_modal</span></span>|<span style="color: #000000;"><span style="color: #000000;">layoutparams.flag_not_focusable; Wmparams.gravity</span></span>=gravity.left| gravity.top;<span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Adjust the hover window to the upper left corner</span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">set x, y initial values as the origin in the Upper-left corner</span> of the screen</span>Wmparams.x=0<span style="color: #000000;"><span style="color: #000000;">; Wmparams.y</span></span>=0<span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Setting the hover window length-width data</span></span>Wmparams.width=40<span style="color: #000000;"><span style="color: #000000;">; Wmparams.height</span></span>=40<span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Show Myfloatview Images</span></span><span style="color: #000000;"><span style="color: #000000;">Wm.addview (myfv, wmparams); } @Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">OnDestroy () {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">. OnDestroy (); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">destroys a suspended window when program exits (activity Destruction)</span></span><span style="color: #000000;"><span style="color: #000000;">Wm.removeview (myfv); }}</span></span></pre><p style="margin-left: 30px;" align="left"><p style="margin-left: 30px;" align="left"><span style="font-family: ‘Microsoft YaHei‘; font-size: 14px;">L finally modify the program permissions on the phone during program Installation-"hover window is available</span></p></p><p><p></p></p>Jerry Education<br>Source:<span style="color: #000000;"><span style="color: #000000;"><span style="color: #000000;">http://www.cnblogs.com/jerehedu/</span></span></span><br><span style="font-family: ‘Microsoft YaHei‘; color: #000000;"><span style="font-family: ‘Microsoft YaHei‘; color: #000000;">Copyright Notice: The copyright of this article belongs to <span style="color: #000000;">cigarettes</span> </span></span><span style="font-family: ‘Microsoft YaHei‘;"><span style="font-family: ‘Microsoft YaHei‘;">Desk</span></span><span style="color: #000000; font-family: ‘Microsoft YaHei‘;"><span style="color: #000000; font-family: ‘Microsoft YaHei‘;"><span style="color: #000000;">Jerry Education</span></span></span><span style="font-family: ‘Microsoft YaHei‘;"><span style="font-family: ‘Microsoft YaHei‘;">Section</span></span><span style="font-family: ‘Microsoft YaHei‘; color: #000000;"><span style="font-family: ‘Microsoft YaHei‘; color: #000000;"><span style="color: #000000;">Technology co., Ltd.</span> and blog Park are shared, welcome reprint, but without the consent of the author must retain this paragraph, and in the article page obvious location to the original link, otherwise reserves the right to pursue legal responsibility.<br>Technical Consultation:</span></span><p><p>Android WindowManager for floating windows (i)--binding with current activity</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.