Android 悬浮窗框架,好用不解释
APACHE-2.0 License
7.0
build.gradle
allprojects {
repositories {
// JitPack https://jitpack.io
maven { url 'https://jitpack.io' }
}
}
7.0
settings.gradle
dependencyResolutionManagement {
repositories {
// JitPack https://jitpack.io
maven { url 'https://jitpack.io' }
}
}
build.gradle
android {
// JDK 1.8
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// https://github.com/getActivity/EasyWindow
implementation 'com.github.getActivity:EasyWindow:10.62'
}
// Activity
// Application
EasyWindow.with(this)
.setContentView(R.layout.toast_hint)
//
//.setDraggable()
//
.setDuration(1000)
//
//.setAnimStyle(android.R.style.Animation_Translucent)
//
//.setOutsideTouchable(false)
//
//.setBackgroundDimAmount(0.5f)
.setImageDrawable(android.R.id.icon, R.mipmap.ic_dialog_tip_finish)
.setText(android.R.id.message, "")
.setOnClickListener(android.R.id.message, new EasyWindow.OnClickListener<TextView>() {
@Override
public void onClick(EasyWindow<?> easyWindow, TextView view) {
// View
easyWindow.cancel();
// Activity
// easyWindow.startActivity(intent);
}
})
.show();
EasyWindow.with(activity).apply {
setContentView(R.layout.toast_hint)
//
//setDraggable()
//
setDuration(1000)
//
//setAnimStyle(android.R.style.Animation_Translucent)
//
//setOutsideTouchable(false)
//
//setBackgroundDimAmount(0.5f)
setImageDrawable(android.R.id.icon, R.mipmap.ic_dialog_tip_finish)
setText(android.R.id.message, "")
setOnClickListener(android.R.id.message, EasyWindow.OnClickListener<TextView?> { easyWindow: EasyWindow<*>, view: TextView? ->
// View
easyWindow.cancel()
// Activity
// easyWindow.startActivity(intent);
})
}.show()
EasyWindow.with(activity)
.setContentView(R.layout.toast_hint)
//
//.setDraggable()
//
.setDuration(1000)
//
//.setAnimStyle(android.R.style.Animation_Translucent)
//
//.setOutsideTouchable(false)
//
//.setBackgroundDimAmount(0.5f)
.setImageDrawable(android.R.id.icon, R.mipmap.ic_dialog_tip_finish)
.setText(android.R.id.message, "")
.setOnClickListener(android.R.id.message, EasyWindow.OnClickListener<TextView?> { easyWindow: EasyWindow<*>, view: TextView? ->
// View
easyWindow.cancel()
// Activity
// easyWindow.startActivity(intent);
})
.show()
Activity Activity Activity
Application Activity Activity.onCreate
public final class ActivityWindowLifecycle implements Application.ActivityLifecycleCallbacks {
static void with(Application application) {
application.registerActivityLifecycleCallbacks(new FloatingLifecycle());
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
EasyWindow.with(activity)
.setView(R.layout.xxx)
.show();
}
@Override
public void onActivityStarted(Activity activity) {}
@Override
public void onActivityResumed(Activity activity) {}
@Override
public void onActivityPaused(Activity activity) {}
@Override
public void onActivityStopped(Activity activity) {}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {}
@Override
public void onActivityDestroyed(Activity activity) {}
}
//
setWidth(int width)
//
setHeight(int height)
//
setGravity(int gravity)
//
setXOffset(int px)
//
setYOffset(int px)
//
setOutsideTouchable(boolean touchable)
//
setBackgroundDimAmount(float amount)
//
addWindowFlags(int flags)
//
removeWindowFlags(int flags)
//
setWindowFlags(int flags)
//
hasWindowFlags(int flags)
//
setWindowType(int type)
// WindowManager
// API EasyWindow
......
//
EasyWindow.cancelAll()
//
EasyWindow.cancelByClass(Class<? extends EasyWindow<?>> clazz)
//
EasyWindow.cancelByTag(String tag)
//
EasyWindow.recycleAll()
//
EasyWindow.recycleByClass(Class<? extends EasyWindow<?>> clazz)
//
EasyWindow.recycleByTag(String tag)
//
EasyWindow.existShowing()
//
EasyWindow.existShowingByClass(Class<? extends EasyWindow<?>> clazz)
//
EasyWindow.existShowingByTag(String tag)
proguard-rules.pro
-keep class com.hjq.window.** {*;}
ShapeView ShapeView
ShapeDrawable ShapeDrawable
Gson GsonFactory
Android AndroidVersionAdapter
Android AndroidCodeStandard
Android AndroidIndex
Android AndroidGithubBoss
Studio StudioPlugins
AI AiIndex
Json ProvinceJson
Markdown MarkdownDoc
Copyright 2019 Huang JinQun
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.