Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="fill_parent"
  4. android:id="@+id/l1"
  5. android:layout_height="fill_parent"
  6. tools:context=".OverlayActivity" >
  7.  
  8. <Button
  9. android:id="@+id/mainButton"
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:textAlignment="center"
  13. android:gravity="center_vertical"
  14. android:layout_alignParentRight="true"
  15. android:layout_centerInParent="true"
  16. android:clickable="true"
  17. android:visibility="visible"
  18. android:focusable="true">
  19.  
  20. </Button>
  21.  
  22. @Override
  23. public void onCreate() {
  24. super.onCreate();
  25. LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
  26. View oView = layoutInflater.inflate(R.layout.activity_overlay, null);
  27. WindowManager.LayoutParams params = new WindowManager.LayoutParams(
  28. WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
  29. 0 | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
  30. PixelFormat.TRANSLUCENT);
  31. WindowManager.LayoutParams.TYPE_PHONE,
  32. WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
  33. PixelFormat.TRANSLUCENT);
  34. WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
  35. wm.addView(oView, params);
  36. Button button = (Button)oView.findViewById(R.id.mainButton);
  37.  
  38.  
  39. button.setOnClickListener(new OnClickListener() {
  40.  
  41. @Override
  42. public void onClick(View arg0) {
  43.  
  44. Toast.makeText(OverlayService.this, "GotCha!!! ", Toast.LENGTH_LONG).show();
  45.  
  46. }
  47.  
  48. });
  49. ViewGroup vg = (ViewGroup)oView.findViewById(R.id.l1);
  50. final Display metrics = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
  51. vg.setOnTouchListener(new View.OnTouchListener() {
  52. @Override
  53. public boolean onTouch(View v, MotionEvent event) {
  54. switch(event.getActionMasked()){
  55.  
  56. case MotionEvent.ACTION_MOVE:
  57. int x = (int)event.getX() - offset_x;
  58. int y = (int)event.getY() - offset_y;
  59.  
  60.  
  61. int w = metrics.getWidth()-100;
  62. int h = metrics.getHeight()-100;
  63.  
  64. if(x > w){
  65. x = w;
  66. }
  67. if(y > h){
  68. y = h;
  69. }
  70. LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
  71. new ViewGroup.MarginLayoutParams(
  72. LinearLayout.LayoutParams.WRAP_CONTENT,
  73. LinearLayout.LayoutParams.WRAP_CONTENT));
  74. lp.setMargins(x, y, 0, 0);
  75. selected_item.setLayoutParams(lp);
  76. break;
  77.  
  78. default:
  79. break;
  80. }
  81. return true;
  82. }
  83. });
  84. button.setOnTouchListener(new View.OnTouchListener() {
  85. @Override
  86. public boolean onTouch(View v, MotionEvent event) {
  87. switch(event.getActionMasked()){
  88. case MotionEvent.ACTION_DOWN:
  89. offset_x = (int)event.getX();
  90. offset_y = (int)event.getY();
  91. selected_item = v;
  92. break;
  93. default:
  94. break;
  95. }
  96. return false;
  97. }
  98. });
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement