Advertisement
Guest User

Untitled

a guest
Apr 18th, 2014
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. public class Fly extends Service {
  2.  
  3.  
  4. private WindowManager windowManager;
  5. private ImageView chatHead;
  6.  
  7. @Override
  8. public IBinder onBind(Intent intent) {
  9. // TODO Auto-generated method stub
  10. return null;
  11. }
  12.  
  13. @Override
  14. public void onCreate() {
  15. super.onCreate();
  16.  
  17. windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
  18.  
  19. chatHead = new ImageView(this);
  20.  
  21. chatHead.setImageResource(R.drawable.floating);
  22.  
  23. final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
  24. WindowManager.LayoutParams.WRAP_CONTENT,
  25. WindowManager.LayoutParams.WRAP_CONTENT,
  26.  
  27. WindowManager.LayoutParams.TYPE_PHONE,
  28.  
  29. WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
  30.  
  31. PixelFormat.TRANSLUCENT);
  32.  
  33. params.gravity = Gravity.TOP | Gravity.LEFT;
  34. params.x = 0;
  35. params.y = 100;
  36.  
  37.  
  38. windowManager.addView(chatHead, params);
  39.  
  40.  
  41.  
  42. try {
  43. chatHead.setOnTouchListener(new View.OnTouchListener() {
  44. private WindowManager.LayoutParams paramsF = params;
  45. private int initialX;
  46. private int initialY;
  47. private float initialTouchX;
  48. private float initialTouchY;
  49.  
  50. @Override public boolean onTouch(View v, MotionEvent event) {
  51. switch (event.getAction()) {
  52. case MotionEvent.ACTION_DOWN:
  53.  
  54. // Get current time in nano seconds.
  55.  
  56. initialX = paramsF.x;
  57. initialY = paramsF.y;
  58. initialTouchX = event.getRawX();
  59. initialTouchY = event.getRawY();
  60. break;
  61. case MotionEvent.ACTION_UP:
  62. break;
  63. case MotionEvent.ACTION_MOVE:
  64. paramsF.x = initialX + (int) (event.getRawX() - initialTouchX);
  65. paramsF.y = initialY + (int) (event.getRawY() - initialTouchY);
  66. windowManager.updateViewLayout(chatHead, paramsF);
  67. break;
  68. }
  69. return false;
  70. }
  71. });
  72. } catch (Exception e) {
  73. // TODO: handle exception
  74. }
  75.  
  76. }
  77.  
  78.  
  79.  
  80. @Override
  81. public void onDestroy() {
  82. super.onDestroy();
  83. if (chatHead != null) windowManager.removeView(chatHead);
  84. //windowManager.removeView(chatHead);
  85.  
  86.  
  87. }
  88.  
  89. }
  90.  
  91. public class MainActivity extends Activity {
  92.  
  93. @Override
  94. protected void onCreate(Bundle savedInstanceState) {
  95. super.onCreate(savedInstanceState);
  96. setContentView(R.layout.main);
  97.  
  98. Bundle bundle = getIntent().getExtras();
  99.  
  100. if(bundle != null && bundle.getString("LAUNCH").equals("YES")) {
  101. startService(new Intent(MainActivity.this, Fly.class));
  102. }
  103.  
  104. Button launch = (Button)findViewById(R.id.button1);
  105. launch.setOnClickListener(new OnClickListener() {
  106.  
  107. @Override
  108. public void onClick(View v) {
  109. startService(new Intent(MainActivity.this, Fly.class));
  110. }
  111. });
  112.  
  113. Button stop = (Button)findViewById(R.id.button2);
  114. stop.setOnClickListener(new OnClickListener() {
  115.  
  116. @Override
  117. public void onClick(View v) {
  118. stopService(new Intent(MainActivity.this, Fly.class));
  119. }
  120. });
  121.  
  122. }
  123.  
  124. @Override
  125. protected void onResume() {
  126. Bundle bundle = getIntent().getExtras();
  127.  
  128. if(bundle != null && bundle.getString("LAUNCH").equals("YES")) {
  129. startService(new Intent(MainActivity.this, Fly.class));
  130. }
  131. super.onResume();
  132. }
  133.  
  134. if (chatHead != null) windowManager.removeView(chatHead);
  135.  
  136. super.onPause();
  137.  
  138. }
  139.  
  140. }
  141.  
  142. if (chatHead != null) {
  143. windowManager.removeView(chatHead);
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement