Skip to content

Commit c71f7fb

Browse files
committed
Update README
1 parent dd8161a commit c71f7fb

1 file changed

Lines changed: 96 additions & 117 deletions

File tree

README.md

Lines changed: 96 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,18 @@
1-
# Android OverlayViewManager [![](https://jitpack.io/v/75py/Android-OverlayViewManager.svg)](https://jitpack.io/#75py/Android-OverlayViewManager) [![codebeat badge](https://codebeat.co/badges/41006b87-ccb5-4eba-bfc5-57b35cf8335f)](https://codebeat.co/projects/github-com-75py-android-overlayviewmanager-master)
1+
# OverlayViewManager [![](https://jitpack.io/v/75py/Android-OverlayViewManager.svg)](https://jitpack.io/#75py/Android-OverlayViewManager) [![codebeat badge](https://codebeat.co/badges/41006b87-ccb5-4eba-bfc5-57b35cf8335f)](https://codebeat.co/projects/github-com-75py-android-overlayviewmanager-master)
22

3-
OverlayViewManager provides simple API for displaying overlay your views.
3+
OverlayViewManager is a lightweight Android library that allows you to overlay views on top of other apps, providing a simple interface to manage and customize these overlays. This library is particularly useful for creating floating widgets or overlays that need to be displayed across the entire system, regardless of the activity or app in the foreground.
44

55
Try out [the sample application on Google Play](https://play.google.com/store/apps/details?id=com.nagopy.android.overlayviewmanager.sample).
66

7-
## Usage
8-
9-
### Check permissions and request if needed
10-
11-
```java
12-
OverlayViewManager overlayViewManager = OverlayViewManager.getInstance();
13-
if (!overlayViewManager.canDrawOverlays()) {
14-
overlayViewManager.showPermissionRequestDialog(getSupportFragmentManager(), R.string.app_name);
15-
}
16-
```
17-
18-
### Create OverlayView instance
19-
20-
```java
21-
OverlayView overlayView = overlayViewManager.newOverlayView(yourView);
22-
```
23-
24-
### Start and stop overlay
25-
26-
```java
27-
// Start overlay
28-
overlayView.show();
29-
30-
// Stop overlay
31-
overlayView.hide();
32-
```
33-
34-
<img src="images/anime/show_hide.gif" width="270" height="480" alt="">
35-
36-
37-
### OverlayView#setTouchable(boolean)
38-
39-
```java
40-
OverlayView overlayView = overlayViewManager.newOverlayView(yourView)
41-
// .setTouchable(false) default
42-
.show();
43-
44-
overlayView.setTouchable(true)
45-
.update();
46-
```
47-
48-
<img src="images/anime/setTouchable.gif" width="270" height="480" alt="">
49-
50-
51-
### OverlayView#setDraggable(boolean)
52-
53-
```java
54-
OverlayView overlayView = overlayViewManager.newOverlayView(yourView)
55-
// .setDraggable(false) default
56-
.show();
57-
58-
overlayView.setDraggable(true)
59-
.update();
60-
```
61-
62-
<img src="images/anime/setDraggable.gif" width="270" height="480" alt="">
63-
64-
65-
### OverlayView#setWidth(int)
66-
67-
```java
68-
OverlayView overlayView = overlayViewManager.newOverlayView(yourView)
69-
// .setWidth(WRAP_CONTENT) default
70-
.show();
71-
72-
overlayView.setWidth(MATCH_PARENT)
73-
.update();
7+
## Features
748

75-
overlayView.setWidth(400)
76-
.update();
77-
```
78-
79-
<img src="images/anime/setWidth.gif" width="270" height="480" alt="">
80-
81-
### Other functions
82-
83-
* OverlayViewManager
84-
* OverlayView<View> newOverlayView(View, Activity)
85-
* int getDisplayWidth()
86-
* int getDisplayHeight()
87-
* OverlayView
88-
* setHeight(int)
89-
* setGravity(int)
90-
* setGravity(int)
91-
* and more
9+
- **Easy to Use**: Simple API to create and manage overlay views.
10+
- **Customizable**: Supports various customization options like touchable, draggable, and view positioning.
11+
- **Lifecycle Management**: Manages the overlay view lifecycle based on activity or application context.
12+
- **Permission Handling**: Provides methods to check and request overlay permissions.
9213

9314
## Installation
9415

95-
### Download
9616

9717
Latest version: [![](https://jitpack.io/v/75py/Android-OverlayViewManager.svg)](https://jitpack.io/#75py/Android-OverlayViewManager)
9818

@@ -114,66 +34,125 @@ dependencies {
11434
}
11535
```
11636

117-
### Setup
37+
## Usage
38+
39+
### Initialization
11840

119-
Call OverlayViewManager.init() in the onCreate() of your Application class.
120-
```java
121-
public class YourApplication extends Application {
41+
Initialize the `OverlayViewManager` in your `Application` class:
12242

43+
```java
44+
public class MyApplication extends Application {
12345
@Override
12446
public void onCreate() {
12547
super.onCreate();
12648
OverlayViewManager.init(this);
12749
}
128-
12950
}
13051
```
13152

132-
## DebugOverlayTree
53+
### Creating an Overlay View
13354

134-
An option for Timber users.
135-
DebugOverlayTree shows debug logs by OverlayView.
55+
To create an overlay view, use the `OverlayViewManager` to get an instance of `OverlayView`:
13656

137-
```groovy
138-
dependencies {
139-
implementation 'com.github.75py.Android-OverlayViewManager:overlayviewmanager-opt-timber:2.0.0-alpha2'
140-
implementation 'com.jakewharton.timber:timber:4.7.1'
141-
}
57+
```java
58+
OverlayViewManager overlayViewManager = OverlayViewManager.getInstance();
59+
TextView overlayTextView = new TextView(this);
60+
overlayTextView.setText("Hello, World!");
61+
62+
OverlayView<TextView> overlayView = overlayViewManager.newOverlayView(overlayTextView);
14263
```
14364

65+
### Displaying the Overlay View
66+
67+
To display the overlay view, call the `show` method:
68+
14469
```java
145-
public class SampleApplication extends Application {
70+
overlayView.show();
71+
```
14672

147-
@Override
148-
public void onCreate() {
149-
super.onCreate();
73+
### Hiding the Overlay View
15074

151-
OverlayViewManager.init(this);
75+
To hide the overlay view, call the `hide` method:
15276

153-
if(BuildConfig.DEBUG) {
154-
// Initialize and plant DebugOverlayTree instance
155-
Timber.plant(DebugOverlayTree.init(this));
156-
}
157-
}
77+
```java
78+
overlayView.hide();
79+
```
80+
81+
<img src="images/anime/show_hide.gif" width="270" height="480" alt="">
15882

83+
### Customizing the Overlay View
84+
85+
You can customize various properties of the overlay view, such as its position, size, and touch behavior:
86+
87+
```java
88+
overlayView
89+
.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT)
90+
.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT)
91+
.setTouchable(true)
92+
.setDraggable(true)
93+
.setGravity(Gravity.TOP | Gravity.START)
94+
.setX(100)
95+
.setY(100)
96+
.setAlpha(0.8f);
97+
```
98+
99+
<img src="images/anime/setTouchable.gif" width="270" height="480" alt="">
100+
101+
<img src="images/anime/setDraggable.gif" width="270" height="480" alt="">
102+
103+
<img src="images/anime/setWidth.gif" width="270" height="480" alt="">
104+
105+
### Handling Permissions
106+
107+
To check if the app has overlay permissions, use the `canDrawOverlays` method:
108+
109+
```java
110+
if (!overlayViewManager.canDrawOverlays()) {
111+
// Request permission
112+
overlayViewManager.requestOverlayPermission();
159113
}
160114
```
161115

116+
To show a permission request dialog:
117+
118+
```java
119+
overlayViewManager.showPermissionRequestDialog(getSupportFragmentManager(), R.string.app_name);
120+
```
121+
122+
## Example
123+
124+
Here is a complete example of how to use the `OverlayViewManager`:
125+
162126
```java
163-
public class SampleTimberActivity extends AppCompatActivity {
127+
public class MainActivity extends AppCompatActivity {
164128

165129
@Override
166-
protected void onCreate(@Nullable Bundle savedInstanceState) {
130+
protected void onCreate(Bundle savedInstanceState) {
167131
super.onCreate(savedInstanceState);
168132

169-
// Register this Activity
170-
DebugOverlayTree.getInstance().register(this);
133+
// Initialize OverlayViewManager
134+
OverlayViewManager.init(getApplication());
171135

172-
setContentView(R.layout.activity_sample_timber);
136+
// Create a new overlay view
137+
TextView overlayTextView = new TextView(this);
138+
overlayTextView.setText("Hello, Overlay!");
173139

174-
Timber.d("onCreate");
175-
}
140+
OverlayView<TextView> overlayView = OverlayViewManager.getInstance().newOverlayView(overlayTextView);
141+
142+
// Set properties
143+
overlayView
144+
.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT)
145+
.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT)
146+
.setTouchable(true)
147+
.setDraggable(true)
148+
.setGravity(Gravity.TOP | Gravity.START)
149+
.setX(100)
150+
.setY(100)
151+
.setAlpha(0.8f);
176152

153+
// Show the overlay view
154+
overlayView.show();
155+
}
177156
}
178157
```
179158

0 commit comments

Comments
 (0)