From 75bdf4227a585a3f044b37b204db5c4ae5a7f1fe Mon Sep 17 00:00:00 2001
From: longtaoge <61852263@qq.com>
Date: Sun, 31 Mar 2019 13:01:42 +0800
Subject: [PATCH 1/8] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/gradle.xml | 3 +++
.idea/misc.xml | 17 +++++++++++++---
.idea/modules.xml | 3 +++
FloatMenu/build.gradle | 5 ++---
.../customfloat/BaseFloatDailog.java | 5 +++++
FloatMenuDemo/build.gradle | 20 +++++++++----------
.../yw/game/floatmenu/demo/MainActivity.java | 2 +-
build.gradle | 4 +++-
gradle/wrapper/gradle-wrapper.properties | 4 ++--
9 files changed, 43 insertions(+), 20 deletions(-)
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 76a4349..2996d53 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -3,6 +3,9 @@
-
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 08cd2a4..129b6e4 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,8 +3,11 @@
+
+
+
\ No newline at end of file
diff --git a/FloatMenu/build.gradle b/FloatMenu/build.gradle
index acf1e19..41f1086 100644
--- a/FloatMenu/build.gradle
+++ b/FloatMenu/build.gradle
@@ -8,7 +8,6 @@ version = "2.1.0"
android {
compileSdkVersion 25
- buildToolsVersion '26.0.2'
defaultConfig {
minSdkVersion 11
@@ -40,8 +39,8 @@ android {
}
dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- compile 'com.android.support:support-v4:25.3.1'
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ implementation 'com.android.support:support-v4:25.3.1'
}
diff --git a/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDailog.java b/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDailog.java
index dd8ec33..ef5673d 100644
--- a/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDailog.java
+++ b/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDailog.java
@@ -398,6 +398,11 @@ private void floatEventDown(MotionEvent event) {
}
+
+
+
+
+
/**
* 悬浮窗touch事件的 move 事件
*/
diff --git a/FloatMenuDemo/build.gradle b/FloatMenuDemo/build.gradle
index ebed711..c910ea7 100644
--- a/FloatMenuDemo/build.gradle
+++ b/FloatMenuDemo/build.gradle
@@ -1,13 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 25
- buildToolsVersion '26.0.2'
+ compileSdkVersion 28
defaultConfig {
applicationId "com.yw.game.floatmenu.demo"
- minSdkVersion 11
- targetSdkVersion 25
+ minSdkVersion 14
+ targetSdkVersion 28
+
versionCode 1
versionName "1.1"
}
@@ -20,10 +20,10 @@ android {
}
dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:25.3.1'
- compile 'com.yw.game.sclib:shortCutLib:0.0.3'
- compile project(':FloatMenu')
- compile 'com.android.support:support-v4:25.3.1'
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ testImplementation 'junit:junit:4.12'
+ implementation 'com.android.support:appcompat-v7:28.0.0'
+ implementation 'com.yw.game.sclib:shortCutLib:0.0.3'
+ implementation project(':FloatMenu')
+ implementation 'com.android.support:support-v4:28.0.0'
}
diff --git a/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java b/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java
index ebbc6df..9bb9900 100644
--- a/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java
+++ b/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java
@@ -108,7 +108,7 @@ public void run() {
if (mBaseFloatDailog != null) return;
mBaseFloatDailog = new MyFloatDialog(this);
- mBaseFloatDailog.show();
+ //mBaseFloatDailog.show();
}
diff --git a/build.gradle b/build.gradle
index cf415c5..3d95be2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,9 +3,10 @@
buildscript {
repositories {
jcenter()
+ google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.0.0'
+ classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
// NOTE: Do not place your application dependencies here; they belong
@@ -19,6 +20,7 @@ allprojects {
maven {
url 'https://dl.bintray.com/fanofdemo/maven/'
}
+ google()
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 25d8da5..3f86286 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Nov 06 00:24:11 CST 2017
+#Sun Mar 31 11:25:06 CST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
From 3d64213f66a87cd0aec026e8211601ca1ef7d17c Mon Sep 17 00:00:00 2001
From: wengyiming
Date: Sun, 5 Jan 2020 17:16:46 +0800
Subject: [PATCH 2/8] update .gitignore
---
.gitignore | 1 +
.idea/.name | 1 -
.idea/compiler.xml | 22 --------------
.idea/copyright/profiles_settings.xml | 3 --
.idea/encodings.xml | 6 ----
.idea/gradle.xml | 15 ----------
.idea/misc.xml | 41 ---------------------------
.idea/modules.xml | 13 ---------
.idea/vcs.xml | 6 ----
9 files changed, 1 insertion(+), 107 deletions(-)
delete mode 100644 .idea/.name
delete mode 100644 .idea/compiler.xml
delete mode 100644 .idea/copyright/profiles_settings.xml
delete mode 100644 .idea/encodings.xml
delete mode 100644 .idea/gradle.xml
delete mode 100644 .idea/misc.xml
delete mode 100644 .idea/modules.xml
delete mode 100644 .idea/vcs.xml
diff --git a/.gitignore b/.gitignore
index f8484a7..f0adcc4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@
.DS_Store
/build
/captures
+/.idea
.idea
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 1aca528..0000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-FloatMenuSample
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 96cc43e..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index e7bedf3..0000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 97626ba..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 2996d53..0000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 09aaef5..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 129b6e4..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
From ea48e407eea4304a08824cdedc2f74dcd6f9118f Mon Sep 17 00:00:00 2001
From: wengyiming
Date: Sun, 5 Jan 2020 17:29:32 +0800
Subject: [PATCH 3/8] fix: name error
---
FloatMenu/build.gradle | 2 +-
.../com/yw/game/floatmenu/DotImageView.java | 80 ++++++------
.../com/yw/game/floatmenu/FloatLogoMenu.java | 114 +++++++++---------
.../com/yw/game/floatmenu/FloatMenuView.java | 31 +++--
...eFloatDailog.java => BaseFloatDialog.java} | 100 +++++++--------
.../yw/game/floatmenu/demo/MainActivity.java | 18 +--
.../yw/game/floatmenu/demo/MyFloatDialog.java | 10 +-
7 files changed, 176 insertions(+), 179 deletions(-)
rename FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/{BaseFloatDailog.java => BaseFloatDialog.java} (90%)
diff --git a/FloatMenu/build.gradle b/FloatMenu/build.gradle
index 41f1086..3191db7 100644
--- a/FloatMenu/build.gradle
+++ b/FloatMenu/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
-version = "2.1.0"
+version = "2.2.0"
android {
compileSdkVersion 25
diff --git a/FloatMenu/src/main/java/com/yw/game/floatmenu/DotImageView.java b/FloatMenu/src/main/java/com/yw/game/floatmenu/DotImageView.java
index 57df63a..62a38e4 100644
--- a/FloatMenu/src/main/java/com/yw/game/floatmenu/DotImageView.java
+++ b/FloatMenu/src/main/java/com/yw/game/floatmenu/DotImageView.java
@@ -46,8 +46,8 @@ public class DotImageView extends View {
private Paint mPaintBg;//用于画anything
private String dotNum = null;//红点数字
- private float mAlphValue;//透明度动画值
- private float mRolateValue = 1f;//旋转动画值
+ private float mAlphaValue;//透明度动画值
+ private float mRotateValue = 1f;//旋转动画值
private boolean inited = false;//标记透明动画是否执行过,防止因onreseme 切换导致重复执行
@@ -58,9 +58,9 @@ public class DotImageView extends View {
private final int mRedPointRadius = dip2px(3);//红点圆半径
private final int mRedPointOffset = dip2px(10);//红点对logo的偏移量,比如左红点就是logo中心的 x - mRedPointOffset
- private boolean isDraging = false;//是否 绘制旋转放大动画,只有 非停靠边缘才绘制
+ private boolean isDrag = false;//是否 绘制旋转放大动画,只有 非停靠边缘才绘制
private float scaleOffset;//放大偏移值
- private ValueAnimator mDragingValueAnimator;//放大、旋转 属性动画
+ private ValueAnimator mDragValueAnimator;//放大、旋转 属性动画
private LinearInterpolator mLinearInterpolator = new LinearInterpolator();//通用用加速器
public boolean mDrawDarkBg = true;//是否绘制黑色背景,当菜单关闭时,才绘制灰色背景
private static final float hideOffset = 0.4f;//往左右隐藏多少宽度的偏移值, 隐藏宽度的0.4
@@ -97,7 +97,7 @@ public int getStatus() {
public void setStatus(int status) {
this.mStatus = status;
- isDraging = false;
+ isDrag = false;
if (this.mStatus != NORMAL) {
setDrawNum(mDrawNum);
this.mDrawDarkBg = true;
@@ -160,8 +160,8 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
- float centryX = getWidth() / 2;
- float centryY = getHeight() / 2;
+ float centerX = getWidth() / 2;
+ float centerY = getHeight() / 2;
canvas.save();//保存一份快照,方便后面恢复
mCamera.save();
if (mStatus == NORMAL) {
@@ -170,7 +170,7 @@ protected void onDraw(Canvas canvas) {
mCamera.restore();
}
- if (isDraging) {
+ if (isDrag) {
//如果当前是拖动状态则放大并旋转
canvas.scale((scaleOffset + 1f), (scaleOffset + 1f), getWidth() / 2, getHeight() / 2);
if (mIsResetPosition) {
@@ -185,7 +185,7 @@ protected void onDraw(Canvas canvas) {
mCamera.restore();
} else {
//手指拖动且手指未离开屏幕则使用 绕图心2d旋转动画
- canvas.rotate(60 * mRolateValue, getWidth() / 2, getHeight() / 2);
+ canvas.rotate(60 * mRotateValue, getWidth() / 2, getHeight() / 2);
}
}
@@ -199,27 +199,27 @@ protected void onDraw(Canvas canvas) {
canvas.rotate(45, getWidth() / 2, getHeight() / 2);
}
canvas.save();
- if (!isDraging) {
+ if (!isDrag) {
if (mDrawDarkBg) {
mPaintBg.setColor(mBgColor);
- canvas.drawCircle(centryX, centryY, mLogoBackgroundRadius, mPaintBg);
+ canvas.drawCircle(centerX, centerY, mLogoBackgroundRadius, mPaintBg);
// 60% 白色 (透明度 40%)
mPaint.setColor(0x99ffffff);
} else {
//100% 白色背景 (透明度 0%)
mPaint.setColor(0xFFFFFFFF);
}
- if (mAlphValue != 0) {
- mPaint.setAlpha((int) (mAlphValue * 255));
+ if (mAlphaValue != 0) {
+ mPaint.setAlpha((int) (mAlphaValue * 255));
}
- canvas.drawCircle(centryX, centryY, mLogoWhiteRadius, mPaint);
+ canvas.drawCircle(centerX, centerY, mLogoWhiteRadius, mPaint);
}
canvas.restore();
//100% 白色背景 (透明度 0%)
mPaint.setColor(0xFFFFFFFF);
- int left = (int) (centryX - mBitmap.getWidth() / 2);
- int top = (int) (centryY - mBitmap.getHeight() / 2);
+ int left = (int) (centerX - mBitmap.getWidth() / 2);
+ int top = (int) (centerY - mBitmap.getHeight() / 2);
canvas.drawBitmap(mBitmap, left, top, mPaint);
@@ -227,29 +227,29 @@ protected void onDraw(Canvas canvas) {
int readPointRadus = (mDrawNum ? mRedPointRadiusWithNum : mRedPointRadius);
mPaint.setColor(Color.RED);
if (mStatus == HIDE_LEFT) {
- canvas.drawCircle(centryX + mRedPointOffset, centryY - mRedPointOffset, readPointRadus, mPaint);
+ canvas.drawCircle(centerX + mRedPointOffset, centerY - mRedPointOffset, readPointRadus, mPaint);
if (mDrawNum) {
mPaint.setColor(Color.WHITE);
- canvas.drawText(dotNum, centryX + mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centryY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
+ canvas.drawText(dotNum, centerX + mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centerY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
}
} else if (mStatus == HIDE_RIGHT) {
- canvas.drawCircle(centryX - mRedPointOffset, centryY - mRedPointOffset, readPointRadus, mPaint);
+ canvas.drawCircle(centerX - mRedPointOffset, centerY - mRedPointOffset, readPointRadus, mPaint);
if (mDrawNum) {
mPaint.setColor(Color.WHITE);
- canvas.drawText(dotNum, centryX - mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centryY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
+ canvas.drawText(dotNum, centerX - mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centerY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
}
} else {
if (mLastStatus == HIDE_LEFT) {
- canvas.drawCircle(centryX + mRedPointOffset, centryY - mRedPointOffset, readPointRadus, mPaint);
+ canvas.drawCircle(centerX + mRedPointOffset, centerY - mRedPointOffset, readPointRadus, mPaint);
if (mDrawNum) {
mPaint.setColor(Color.WHITE);
- canvas.drawText(dotNum, centryX + mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centryY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
+ canvas.drawText(dotNum, centerX + mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centerY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
}
} else if (mLastStatus == HIDE_RIGHT) {
- canvas.drawCircle(centryX - mRedPointOffset, centryY - mRedPointOffset, readPointRadus, mPaint);
+ canvas.drawCircle(centerX - mRedPointOffset, centerY - mRedPointOffset, readPointRadus, mPaint);
if (mDrawNum) {
mPaint.setColor(Color.WHITE);
- canvas.drawText(dotNum, centryX - mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centryY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
+ canvas.drawText(dotNum, centerX - mRedPointOffset - getTextWidth(dotNum, mPaint) / 2, centerY - mRedPointOffset + getTextHeight(dotNum, mPaint) / 2, mPaint);
}
}
}
@@ -286,7 +286,7 @@ public void startAnim(final int num, Animator.AnimatorListener l) {
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
- mAlphValue = (float) animation.getAnimatedValue();
+ mAlphaValue = (float) animation.getAnimatedValue();
invalidate();
}
@@ -302,13 +302,13 @@ public void onAnimationStart(Animator animation) {
public void onAnimationEnd(Animator animation) {
inited = true;
refreshDot(num);
- mAlphValue = 0;
+ mAlphaValue = 0;
}
@Override
public void onAnimationCancel(Animator animation) {
- mAlphValue = 0;
+ mAlphaValue = 0;
}
@Override
@@ -319,26 +319,26 @@ public void onAnimationRepeat(Animator animation) {
valueAnimator.start();
}
- public void setDraging(boolean draging, float offset, boolean isResetPosition) {
- isDraging = draging;
+ public void setDrag(boolean drag, float offset, boolean isResetPosition) {
+ isDrag = drag;
this.mIsResetPosition = isResetPosition;
if (offset > 0 && offset != this.scaleOffset) {
this.scaleOffset = offset;
}
- if (isDraging && mStatus == NORMAL) {
- if (mDragingValueAnimator != null) {
- if (mDragingValueAnimator.isRunning()) return;
+ if (isDrag && mStatus == NORMAL) {
+ if (mDragValueAnimator != null) {
+ if (mDragValueAnimator.isRunning()) return;
}
- mDragingValueAnimator = ValueAnimator.ofFloat(0, 6f, 12f, 0f);
- mDragingValueAnimator.setInterpolator(mLinearInterpolator);
- mDragingValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ mDragValueAnimator = ValueAnimator.ofFloat(0, 6f, 12f, 0f);
+ mDragValueAnimator.setInterpolator(mLinearInterpolator);
+ mDragValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
- mRolateValue = (float) animation.getAnimatedValue();
+ mRotateValue = (float) animation.getAnimatedValue();
invalidate();
}
});
- mDragingValueAnimator.addListener(new Animator.AnimatorListener() {
+ mDragValueAnimator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
@@ -346,7 +346,7 @@ public void onAnimationStart(Animator animation) {
@Override
public void onAnimationEnd(Animator animation) {
- isDraging = false;
+ isDrag = false;
mIsResetPosition = false;
}
@@ -360,8 +360,8 @@ public void onAnimationRepeat(Animator animation) {
}
});
- mDragingValueAnimator.setDuration(1000);
- mDragingValueAnimator.start();
+ mDragValueAnimator.setDuration(1000);
+ mDragValueAnimator.start();
}
}
diff --git a/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java b/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java
index 02a8846..950174d 100644
--- a/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java
+++ b/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java
@@ -22,12 +22,10 @@
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.os.Build;
-import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
-import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.MotionEvent;
@@ -92,7 +90,7 @@ public class FloatLogoMenu {
/**
* 记录手指按下时在小悬浮窗的View上的纵坐标的值
*/
- private float mYinview;
+ private float mYinView;
/**
* 记录屏幕的宽度
@@ -141,7 +139,7 @@ public class FloatLogoMenu {
/**
* 标记是否拖动中
*/
- private boolean isDraging = false;
+ private boolean isDrag = false;
/**
* 用于恢复悬浮球的location的属性动画值
@@ -154,7 +152,7 @@ public class FloatLogoMenu {
private Runnable updatePositionRunnable = new Runnable() {
@Override
public void run() {
- isDraging = true;
+ isDrag = true;
checkPosition();
}
};
@@ -165,7 +163,7 @@ public void run() {
private OnTouchListener mDefaultOnTouchListerner = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
- isDraging = false;
+ isDrag = false;
return false;
}
};
@@ -207,7 +205,7 @@ public boolean onTouch(View v, MotionEvent event) {
/**
* 是否绘制圆形菜单项,false绘制方形
*/
- private boolean mCicleMenuBg;
+ private boolean mCircleMenuBg;
/**
@@ -251,7 +249,7 @@ public boolean onTouch(View v, MotionEvent event) {
private ValueAnimator valueAnimator;
- private boolean isExpaned = false;
+ private boolean isExpanded = false;
private Drawable mBackground;
@@ -259,7 +257,7 @@ public boolean onTouch(View v, MotionEvent event) {
private FloatLogoMenu(Builder builder) {
mBackMenuColor = builder.mBackMenuColor;
mDrawRedPointNum = builder.mDrawRedPointNum;
- mCicleMenuBg = builder.mCicleMenuBg;
+ mCircleMenuBg = builder.mCircleMenuBg;
mLogoRes = builder.mLogoRes;
mActivity = builder.mActivity;
mOnMenuClickListener = builder.mOnMenuClickListener;
@@ -287,7 +285,7 @@ private FloatLogoMenu(Builder builder) {
public void setFloatItemList(List floatItems) {
this.mFloatItems = floatItems;
- caculateDotNum();
+ calculateDotNum();
}
/**
@@ -314,7 +312,7 @@ private void initFloatWindow() {
}
}
mScreenWidth = wManager.getDefaultDisplay().getWidth();
- int screenHeigth = wManager.getDefaultDisplay().getHeight();
+ int screenHeight = wManager.getDefaultDisplay().getHeight();
//判断状态栏是否显示 如果不显示则statusBarHeight为0
mStatusBarHeight = dp2Px(25, mActivity);
@@ -323,7 +321,7 @@ private void initFloatWindow() {
wmParams.gravity = Gravity.LEFT | Gravity.TOP;
wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
mHintLocation = getSetting(LOCATION_X, mDefaultLocation);
- int defaultY = ((screenHeigth - mStatusBarHeight) / 2) / 3;
+ int defaultY = ((screenHeight - mStatusBarHeight) / 2) / 3;
int y = getSetting(LOCATION_Y, defaultY);
if (mHintLocation == LEFT) {
wmParams.x = 0;
@@ -346,14 +344,14 @@ private void initFloatWindow() {
* 初始化悬浮球
*/
private void initFloat() {
- genarateLeftLineLayout();
- genarateRightLineLayout();
+ generateLeftLineLayout();
+ generateRightLineLayout();
mFloatLogo = new DotImageView(mActivity, mLogoRes);
mFloatLogo.setLayoutParams(new WindowManager.LayoutParams(dp2Px(50, mActivity), dp2Px(50, mActivity)));
mFloatLogo.setDrawNum(mDrawRedPointNum);
mFloatLogo.setBgColor(mBackMenuColor);
mFloatLogo.setDrawDarkBg(true);
- caculateDotNum();
+ calculateDotNum();
floatBtnEvent();
try {
wManager.addView(mFloatLogo, wmParams);
@@ -363,7 +361,7 @@ private void initFloat() {
}
- private void genarateLeftLineLayout() {
+ private void generateLeftLineLayout() {
DotImageView floatLogo = new DotImageView(mActivity, mLogoRes);
floatLogo.setLayoutParams(new WindowManager.LayoutParams(dp2Px(50, mActivity), dp2Px(50, mActivity)));
floatLogo.setDrawNum(mDrawRedPointNum);
@@ -380,7 +378,7 @@ private void genarateLeftLineLayout() {
FloatMenuView mFloatMenuView = new FloatMenuView.Builder(mActivity)
.setFloatItems(mFloatItems)
.setBackgroundColor(Color.TRANSPARENT)
- .setCicleBg(mCicleMenuBg)
+ .setCicleBg(mCircleMenuBg)
.setStatus(FloatMenuView.STATUS_LEFT)
.setMenuBackgroundColor(Color.TRANSPARENT)
.drawNum(mDrawRedPointNum)
@@ -394,20 +392,20 @@ private void genarateLeftLineLayout() {
floatLogo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- if (isExpaned) {
+ if (isExpanded) {
try {
wManager.removeViewImmediate(rootView);
wManager.addView(FloatLogoMenu.this.mFloatLogo, wmParams);
} catch (Exception e) {
e.printStackTrace();
}
- isExpaned = false;
+ isExpanded = false;
}
}
});
}
- private void genarateRightLineLayout() {
+ private void generateRightLineLayout() {
final DotImageView floatLogo = new DotImageView(mActivity, mLogoRes);
floatLogo.setLayoutParams(new WindowManager.LayoutParams(dp2Px(50, mActivity), dp2Px(50, mActivity)));
floatLogo.setDrawNum(mDrawRedPointNum);
@@ -416,14 +414,14 @@ private void genarateRightLineLayout() {
floatLogo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- if (isExpaned) {
+ if (isExpanded) {
try {
wManager.removeViewImmediate(rootViewRight);
wManager.addView(FloatLogoMenu.this.mFloatLogo, wmParams);
} catch (Exception e) {
e.printStackTrace();
}
- isExpaned = false;
+ isExpanded = false;
}
}
});
@@ -440,7 +438,7 @@ public void onClick(View v) {
FloatMenuView mFloatMenuView = new FloatMenuView.Builder(mActivity)
.setFloatItems(mFloatItems)
.setBackgroundColor(Color.TRANSPARENT)
- .setCicleBg(mCicleMenuBg)
+ .setCicleBg(mCircleMenuBg)
.setStatus(FloatMenuView.STATUS_RIGHT)
.setMenuBackgroundColor(Color.TRANSPARENT)
.drawNum(mDrawRedPointNum)
@@ -460,18 +458,18 @@ private void initTimer() {
mHideTimer = new CountDownTimer(2000, 10) { //悬浮窗超过5秒没有操作的话会自动隐藏
@Override
public void onTick(long millisUntilFinished) {
- if (isExpaned) {
+ if (isExpanded) {
mHideTimer.cancel();
}
}
@Override
public void onFinish() {
- if (isExpaned) {
+ if (isExpanded) {
mHideTimer.cancel();
return;
}
- if (!isDraging) {
+ if (!isDrag) {
if (mHintLocation == LEFT) {
mFloatLogo.setStatus(DotImageView.HIDE_LEFT);
mFloatLogo.setDrawDarkBg(true);
@@ -513,11 +511,11 @@ public void dismiss() {
* 悬浮窗的点击事件和touch事件的切换
*/
private void floatBtnEvent() {
- //这里的onCick只有 touchListener = mDefaultOnTouchListerner 才会触发
+ //这里的onClick只有 touchListener = mDefaultOnTouchListener 才会触发
// mFloatLogo.setOnClickListener(new OnClickListener() {
// @Override
// public void onClick(View v) {
-// if (!isDraging) {
+// if (!isDrag) {
// if (mFloatLogo.getStatus() != DotImageView.NORMAL) {
// mFloatLogo.setBitmap(mLogoRes);
// mFloatLogo.setStatus(DotImageView.NORMAL);
@@ -538,7 +536,7 @@ private void floatBtnEvent() {
* 悬浮窗touch事件的 down 事件
*/
private void floatEventDown(MotionEvent event) {
- isDraging = false;
+ isDrag = false;
mHideTimer.cancel();
if (mFloatLogo.getStatus() != DotImageView.NORMAL) {
mFloatLogo.setStatus(DotImageView.NORMAL);
@@ -550,7 +548,7 @@ private void floatEventDown(MotionEvent event) {
mFloatLogo.setStatus(DotImageView.NORMAL);
}
mXInView = event.getX();
- mYinview = event.getY();
+ mYinView = event.getY();
mXDownInScreen = event.getRawX();
mYDownInScreen = event.getRawY();
mXInScreen = event.getRawX();
@@ -570,14 +568,14 @@ private void floatEventMove(MotionEvent event) {
//连续移动的距离超过3则更新一次视图位置
if (Math.abs(mXInScreen - mXDownInScreen) > mFloatLogo.getWidth() / 4 || Math.abs(mYInScreen - mYDownInScreen) > mFloatLogo.getWidth() / 4) {
wmParams.x = (int) (mXInScreen - mXInView);
- wmParams.y = (int) (mYInScreen - mYinview) - mFloatLogo.getHeight() / 2;
+ wmParams.y = (int) (mYInScreen - mYinView) - mFloatLogo.getHeight() / 2;
updateViewPosition(); // 手指移动的时候更新小悬浮窗的位置
double a = mScreenWidth / 2;
float offset = (float) ((a - (Math.abs(wmParams.x - a))) / a);
- mFloatLogo.setDraging(isDraging, offset, false);
+ mFloatLogo.setDrag(isDrag, offset, false);
} else {
- isDraging = false;
- mFloatLogo.setDraging(false, 0, true);
+ isDrag = false;
+ mFloatLogo.setDrag(false, 0, true);
}
}
@@ -616,8 +614,8 @@ public void onAnimationEnd(Animator animation) {
wmParams.x = mScreenWidth;
}
updateViewPosition();
- isDraging = false;
- mFloatLogo.setDraging(false, 0, true);
+ isDrag = false;
+ mFloatLogo.setDrag(false, 0, true);
mHideTimer.start();
}
@@ -630,8 +628,8 @@ public void onAnimationCancel(Animator animation) {
}
updateViewPosition();
- isDraging = false;
- mFloatLogo.setDraging(false, 0, true);
+ isDrag = false;
+ mFloatLogo.setDrag(false, 0, true);
mHideTimer.start();
}
@@ -648,7 +646,7 @@ public void onAnimationRepeat(Animator animation) {
// //这里需要判断如果如果手指所在位置和logo所在位置在一个宽度内则不移动,
if (Math.abs(mXInScreen - mXDownInScreen) > mFloatLogo.getWidth() / 5 || Math.abs(mYInScreen - mYDownInScreen) > mFloatLogo.getHeight() / 5) {
- isDraging = false;
+ isDrag = false;
} else {
openMenu();
}
@@ -669,7 +667,7 @@ private void checkPosition() {
updateViewPosition();
double a = mScreenWidth / 2;
float offset = (float) ((a - (Math.abs(wmParams.x - a))) / a);
- mFloatLogo.setDraging(isDraging, offset, true);
+ mFloatLogo.setDrag(isDrag, offset, true);
return;
}
@@ -685,7 +683,7 @@ private void checkPosition() {
updateViewPosition();
- isDraging = false;
+ isDrag = false;
}
@@ -695,9 +693,9 @@ private void checkPosition() {
* 打开菜单
*/
private void openMenu() {
- if (isDraging) return;
+ if (isDrag) return;
- if (!isExpaned) {
+ if (!isExpanded) {
mFloatLogo.setDrawDarkBg(false);
try {
wManager.removeViewImmediate(mFloatLogo);
@@ -710,11 +708,11 @@ private void openMenu() {
e.printStackTrace();
}
- isExpaned = true;
+ isExpanded = true;
mHideTimer.cancel();
} else {
mFloatLogo.setDrawDarkBg(true);
- if (isExpaned) {
+ if (isExpanded) {
try {
wManager.removeViewImmediate(mHintLocation == LEFT ? rootView : rootViewRight);
wManager.addView(mFloatLogo, wmParams);
@@ -722,7 +720,7 @@ private void openMenu() {
e.printStackTrace();
}
- isExpaned = false;
+ isExpanded = false;
}
mHideTimer.start();
}
@@ -734,12 +732,12 @@ private void openMenu() {
* 更新悬浮窗在屏幕中的位置。
*/
private void updateViewPosition() {
- isDraging = true;
+ isDrag = true;
try {
- if (!isExpaned) {
+ if (!isExpanded) {
if (wmParams.y - mFloatLogo.getHeight() / 2 <= 0) {
wmParams.y = mStatusBarHeight;
- isDraging = true;
+ isDrag = true;
}
wManager.updateViewLayout(mFloatLogo, wmParams);
}
@@ -768,27 +766,27 @@ public void show() {
* 关闭菜单
*/
public void hide() {
- destoryFloat();
+ destroyFloat();
}
/**
* 移除所有悬浮窗 释放资源
*/
- public void destoryFloat() {
+ public void destroyFloat() {
//记录上次的位置logo的停放位置,以备下次恢复
saveSetting(LOCATION_X, mHintLocation);
saveSetting(LOCATION_Y, wmParams.y);
mFloatLogo.clearAnimation();
try {
mHideTimer.cancel();
- if (isExpaned) {
+ if (isExpanded) {
wManager.removeViewImmediate(mHintLocation == LEFT ? rootView : rootViewRight);
} else {
wManager.removeViewImmediate(mFloatLogo);
}
- isExpaned = false;
- isDraging = false;
+ isExpanded = false;
+ isDrag = false;
} catch (Exception e) {
e.printStackTrace();
}
@@ -797,7 +795,7 @@ public void destoryFloat() {
/**
* 计算总红点数
*/
- private void caculateDotNum() {
+ private void calculateDotNum() {
int dotNum = 0;
for (FloatItem floatItem : mFloatItems) {
if (!TextUtils.isEmpty(floatItem.getDotNum())) {
@@ -823,7 +821,7 @@ public void onAnimationStart(Animator animation) {
@Override
public void onAnimationEnd(Animator animation) {
- if (!isDraging) {
+ if (!isDrag) {
mHideTimer.start();
}
}
@@ -908,7 +906,7 @@ public void setValueAnimator() {
public static final class Builder {
private int mBackMenuColor;
private boolean mDrawRedPointNum;
- private boolean mCicleMenuBg;
+ private boolean mCircleMenuBg;
private Bitmap mLogoRes;
private int mDefaultLocation;
private List mFloatItems = new ArrayList<>();
@@ -946,7 +944,7 @@ public Builder drawRedPointNum(boolean val) {
}
public Builder drawCicleMenuBg(boolean val) {
- mCicleMenuBg = val;
+ mCircleMenuBg = val;
return this;
}
diff --git a/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatMenuView.java b/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatMenuView.java
index 9c7cd67..974a2a4 100644
--- a/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatMenuView.java
+++ b/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatMenuView.java
@@ -61,7 +61,7 @@ public class FloatMenuView extends View {
private int mFontSizeTitle = sp2px(12);//菜单项的title的文字大小
private float mFirstItemTop;//菜单项的最小y值,上面起始那条线
private boolean mDrawNum = false;//是否绘制数字,false则只绘制红点
- private boolean cicleBg = false;//菜单项背景是否绘制成圆形,false则绘制矩阵
+ private boolean circleBg = false;//菜单项背景是否绘制成圆形,false则绘制矩阵
private List mItemList = new ArrayList<>();//菜单项的内容
private List mItemRectList = new ArrayList<>();//菜单项所占用位置的记录,用于判断点击事件
@@ -81,8 +81,8 @@ public void drawNum(boolean drawNum) {
}
//设置是否绘制圆形菜单,否则矩阵
- public void setCicleBg(boolean cicleBg) {
- this.cicleBg = cicleBg;
+ public void setCircleBg(boolean circleBg) {
+ this.circleBg = circleBg;
}
//用于标记所依赖的view的screen的坐标,实际view的坐标是window坐标,所以这里后面会减去状态栏的高度
@@ -165,7 +165,6 @@ protected void onDraw(Canvas canvas) {
case STATUS_RIGHT:
drawBackground(canvas);
drawFloatLeftItem(canvas);
-
break;
}
}
@@ -181,7 +180,7 @@ private void drawFloatLeftItem(Canvas canvas) {
for (int i = 0; i < mItemList.size(); i++) {
canvas.save();
mPaint.setColor(mMenuBackgroundColor);
- if (cicleBg) {
+ if (circleBg) {
float cx = (mItemLeft + i * mItemWidth) + mItemWidth / 2;//x中心点
float cy = mFirstItemTop + mItemHeight / 2;//y中心点
float radius = mItemWidth / 2;//半径
@@ -203,32 +202,32 @@ private void drawIconTitleDot(Canvas canvas, int position) {
FloatItem floatItem = mItemList.get(position);
if (floatItem.icon != null) {
- float centryX = mItemLeft + mItemWidth / 2 + (mItemWidth) * position;//计算每一个item的中心点x的坐标值
- float centryY = mFirstItemTop + mItemHeight / 2;//计算每一个item的中心点的y坐标值
+ float centerX = mItemLeft + mItemWidth / 2 + (mItemWidth) * position;//计算每一个item的中心点x的坐标值
+ float centerY = mFirstItemTop + mItemHeight / 2;//计算每一个item的中心点的y坐标值
- float left = centryX - mItemWidth / 4;//计算icon的左坐标值 中心点往左移宽度的四分之一
- float right = centryX + mItemWidth / 4;
+ float left = centerX - mItemWidth / 4;//计算icon的左坐标值 中心点往左移宽度的四分之一
+ float right = centerX + mItemWidth / 4;
float iconH = mItemHeight * 0.5f;//计算出icon的宽度 = icon的高度
float textH = getTextHeight(floatItem.getTitle(), mPaint);
- float paddH = (mItemHeight - iconH - textH - mRadius) / 2;//总高度减去文字的高度,减去icon高度,再除以2就是上下的间距剩余
+ float paddingH = (mItemHeight - iconH - textH - mRadius) / 2;//总高度减去文字的高度,减去icon高度,再除以2就是上下的间距剩余
- float top = centryY - mItemHeight / 2 + paddH;//计算icon的上坐标值
+ float top = centerY - mItemHeight / 2 + paddingH;//计算icon的上坐标值
float bottom = top + iconH;//剩下的高度空间用于画文字
//画icon
mPaint.setColor(floatItem.titleColor);
canvas.drawBitmap(floatItem.icon, null, new RectF(left, top, right, bottom), mPaint);
if (!TextUtils.isEmpty(floatItem.dotNum) && !floatItem.dotNum.equals("0")) {
- float dotLeft = centryX + mItemWidth / 5;
+ float dotLeft = centerX + mItemWidth / 5;
float cx = dotLeft + mCorner;//x中心点
float cy = top + mCorner;//y中心点
- int radiu = mDrawNum ? mRadius : mRedPointRadiuWithNoNum;
+ int radius = mDrawNum ? mRadius : mRedPointRadiuWithNoNum;
//画红点
mPaint.setColor(Color.RED);
- canvas.drawCircle(cx, cy, radiu, mPaint);
+ canvas.drawCircle(cx, cy, radius, mPaint);
if (mDrawNum) {
mPaint.setColor(Color.WHITE);
mPaint.setTextSize(mFontSizePointNum);
@@ -239,7 +238,7 @@ private void drawIconTitleDot(Canvas canvas, int position) {
mPaint.setColor(floatItem.titleColor);
mPaint.setTextSize(mFontSizeTitle);
//画menu title
- canvas.drawText(floatItem.title, centryX - getTextWidth(floatItem.getTitle(), mPaint) / 2, centryY + iconH / 2 + getTextHeight(floatItem.getTitle(), mPaint) / 2, mPaint);
+ canvas.drawText(floatItem.title, centerX - getTextWidth(floatItem.getTitle(), mPaint) / 2, centerY + iconH / 2 + getTextHeight(floatItem.getTitle(), mPaint) / 2, mPaint);
}
}
@@ -388,7 +387,7 @@ public FloatMenuView create() {
FloatMenuView floatMenuView = new FloatMenuView(mActivity, mStatus);
floatMenuView.setItemList(mFloatItems);
floatMenuView.setBackgroundColor(mBgColor);
- floatMenuView.setCicleBg(cicleBg);
+ floatMenuView.setCircleBg(cicleBg);
floatMenuView.startAnim();
floatMenuView.drawNum(mDrawNum);
floatMenuView.setMenuBackgroundColor(mMenuBackgroundColor);
diff --git a/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDailog.java b/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDialog.java
similarity index 90%
rename from FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDailog.java
rename to FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDialog.java
index ef5673d..c824cf3 100644
--- a/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDailog.java
+++ b/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDialog.java
@@ -36,7 +36,7 @@
* Created by wengyiming on 2017/8/25.
*/
-public abstract class BaseFloatDailog {
+public abstract class BaseFloatDialog {
/**
* 悬浮球 坐落 左 右 标记
@@ -91,7 +91,7 @@ public abstract class BaseFloatDailog {
/**
* 记录手指按下时在小悬浮窗的View上的纵坐标的值
*/
- private float mYinview;
+ private float mYinView;
/**
* 记录屏幕的宽度
@@ -136,18 +136,18 @@ public abstract class BaseFloatDailog {
/**
* 标记是否拖动中
*/
- private boolean isDraging = false;
+ private boolean isDrag = false;
/**
* 用于恢复悬浮球的location的属性动画值
*/
private int mResetLocationValue;
- public boolean isApplictionDialog() {
- return isApplictionDialog;
+ public boolean isApplicationDialog() {
+ return isApplicationDialog;
}
- private boolean isApplictionDialog = false;
+ private boolean isApplicationDialog = false;
/**
* 这个事件用于处理移动、自定义点击或者其它事情,return true可以保证onclick事件失效
@@ -172,7 +172,7 @@ public boolean onTouch(View v, MotionEvent event) {
};
ValueAnimator valueAnimator = null;
- private boolean isExpaned = false;
+ private boolean isExpanded = false;
private View logoView;
private View rightView;
@@ -186,7 +186,7 @@ public Context getContext() {
return mActivity;
}
- public static class FloatDialogImp extends BaseFloatDailog {
+ public static class FloatDialogImp extends BaseFloatDialog {
public FloatDialogImp(Context context, GetViewCallback getViewCallback) {
@@ -218,7 +218,7 @@ protected void resetLogoViewSize(int hintLocation, View logoView) {
}
@Override
- protected void dragingLogoViewOffset(View logoView, boolean isDraging, boolean isResetPosition, float offset) {
+ protected void dragLogoViewOffset(View logoView, boolean isDraging, boolean isResetPosition, float offset) {
}
@@ -248,12 +248,12 @@ protected void leftOrRightViewClosed(View logoView) {
}
@Override
- protected void onDestoryed() {
+ protected void onDestroyed() {
}
}
- protected BaseFloatDailog(Context context, GetViewCallback getViewCallback) {
+ protected BaseFloatDialog(Context context, GetViewCallback getViewCallback) {
this(context);
this.mGetViewCallback = getViewCallback;
if (mGetViewCallback == null) {
@@ -262,7 +262,7 @@ protected BaseFloatDailog(Context context, GetViewCallback getViewCallback) {
}
- protected BaseFloatDailog(Context context) {
+ protected BaseFloatDialog(Context context) {
this.mActivity = context;
initFloatWindow();
initTimer();
@@ -292,18 +292,18 @@ private void initTimer() {
mHideTimer = new CountDownTimer(2000, 10) { //悬浮窗超过5秒没有操作的话会自动隐藏
@Override
public void onTick(long millisUntilFinished) {
- if (isExpaned) {
+ if (isExpanded) {
mHideTimer.cancel();
}
}
@Override
public void onFinish() {
- if (isExpaned) {
+ if (isExpanded) {
mHideTimer.cancel();
return;
}
- if (!isDraging) {
+ if (!isDrag) {
if (mHintLocation == LEFT) {
if (mGetViewCallback == null) {
shrinkLeftLogoView(logoView);
@@ -336,7 +336,7 @@ private void initFloatWindow() {
wManager = activity.getWindowManager();
//类似dialog,寄托在activity的windows上,activity关闭时需要关闭当前float
wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION;
- isApplictionDialog = true;
+ isApplicationDialog = true;
} else {
wManager = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
//判断状态栏是否显示 如果不显示则statusBarHeight为0
@@ -350,15 +350,15 @@ private void initFloatWindow() {
} else {
wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
}
- isApplictionDialog = false;
+ isApplicationDialog = false;
}
mScreenWidth = wManager.getDefaultDisplay().getWidth();
- int screenHeigth = wManager.getDefaultDisplay().getHeight();
+ int screenHeight = wManager.getDefaultDisplay().getHeight();
wmParams.format = PixelFormat.RGBA_8888;
wmParams.gravity = Gravity.LEFT | Gravity.TOP;
wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
mHintLocation = getSetting(LOCATION_X, mDefaultLocation);
- int defaultY = ((screenHeigth) / 2) / 3;
+ int defaultY = ((screenHeight) / 2) / 3;
int y = getSetting(LOCATION_Y, defaultY);
if (mHintLocation == LEFT) {
wmParams.x = 0;
@@ -379,7 +379,7 @@ private void initFloatWindow() {
* 悬浮窗touch事件的 down 事件
*/
private void floatEventDown(MotionEvent event) {
- isDraging = false;
+ isDrag = false;
mHideTimer.cancel();
if (mGetViewCallback == null) {
@@ -389,7 +389,7 @@ private void floatEventDown(MotionEvent event) {
}
mXInView = event.getX();
- mYinview = event.getY();
+ mYinView = event.getY();
mXDownInScreen = event.getRawX();
mYDownInScreen = event.getRawY();
mXInScreen = event.getRawX();
@@ -414,21 +414,21 @@ private void floatEventMove(MotionEvent event) {
//连续移动的距离超过3则更新一次视图位置
if (Math.abs(mXInScreen - mXDownInScreen) > logoView.getWidth() / 4 || Math.abs(mYInScreen - mYDownInScreen) > logoView.getWidth() / 4) {
wmParams.x = (int) (mXInScreen - mXInView);
- wmParams.y = (int) (mYInScreen - mYinview) - logoView.getHeight() / 2;
+ wmParams.y = (int) (mYInScreen - mYinView) - logoView.getHeight() / 2;
updateViewPosition(); // 手指移动的时候更新小悬浮窗的位置
double a = mScreenWidth / 2;
float offset = (float) ((a - (Math.abs(wmParams.x - a))) / a);
if (mGetViewCallback == null) {
- dragingLogoViewOffset(logoView, isDraging, false, offset);
+ dragLogoViewOffset(logoView, isDrag, false, offset);
} else {
- mGetViewCallback.dragingLogoViewOffset(logoView, isDraging, false, offset);
+ mGetViewCallback.dragingLogoViewOffset(logoView, isDrag, false, offset);
}
} else {
- isDraging = false;
-// logoView.setDraging(false, 0, true);
+ isDrag = false;
+// logoView.setDrag(false, 0, true);
if (mGetViewCallback == null) {
- dragingLogoViewOffset(logoView, false, true, 0);
+ dragLogoViewOffset(logoView, false, true, 0);
} else {
mGetViewCallback.dragingLogoViewOffset(logoView, false, true, 0);
}
@@ -472,9 +472,9 @@ public void onAnimationEnd(Animator animation) {
wmParams.x = mScreenWidth;
}
updateViewPosition();
- isDraging = false;
+ isDrag = false;
if (mGetViewCallback == null) {
- dragingLogoViewOffset(logoView, false, true, 0);
+ dragLogoViewOffset(logoView, false, true, 0);
} else {
mGetViewCallback.dragingLogoViewOffset(logoView, false, true, 0);
}
@@ -490,9 +490,9 @@ public void onAnimationCancel(Animator animation) {
}
updateViewPosition();
- isDraging = false;
+ isDrag = false;
if (mGetViewCallback == null) {
- dragingLogoViewOffset(logoView, false, true, 0);
+ dragLogoViewOffset(logoView, false, true, 0);
} else {
mGetViewCallback.dragingLogoViewOffset(logoView, false, true, 0);
}
@@ -511,7 +511,7 @@ public void onAnimationRepeat(Animator animation) {
// //这里需要判断如果如果手指所在位置和logo所在位置在一个宽度内则不移动,
if (Math.abs(mXInScreen - mXDownInScreen) > logoView.getWidth() / 5 || Math.abs(mYInScreen - mYDownInScreen) > logoView.getHeight() / 5) {
- isDraging = false;
+ isDrag = false;
} else {
openMenu();
}
@@ -524,7 +524,7 @@ public void onAnimationRepeat(Animator animation) {
private Runnable updatePositionRunnable = new Runnable() {
@Override
public void run() {
- isDraging = true;
+ isDrag = true;
checkPosition();
}
};
@@ -543,11 +543,11 @@ private void checkPosition() {
updateViewPosition();
double a = mScreenWidth / 2;
float offset = (float) ((a - (Math.abs(wmParams.x - a))) / a);
-// logoView.setDraging(isDraging, offset, true);
+// logoView.setDrag(isDrag, offset, true);
if (mGetViewCallback == null) {
- dragingLogoViewOffset(logoView, false, true, 0);
+ dragLogoViewOffset(logoView, false, true, 0);
} else {
- mGetViewCallback.dragingLogoViewOffset(logoView, isDraging, true, offset);
+ mGetViewCallback.dragingLogoViewOffset(logoView, isDrag, true, offset);
}
return;
@@ -565,7 +565,7 @@ private void checkPosition() {
updateViewPosition();
- isDraging = false;
+ isDrag = false;
}
@@ -590,9 +590,9 @@ public void show() {
* 打开菜单
*/
private void openMenu() {
- if (isDraging) return;
+ if (isDrag) return;
- if (!isExpaned) {
+ if (!isExpanded) {
// logoView.setDrawDarkBg(false);
try {
wManager.removeViewImmediate(logoView);
@@ -617,7 +617,7 @@ private void openMenu() {
e.printStackTrace();
}
- isExpaned = true;
+ isExpanded = true;
mHideTimer.cancel();
} else {
// logoView.setDrawDarkBg(true);
@@ -634,7 +634,7 @@ private void openMenu() {
e.printStackTrace();
}
- isExpaned = false;
+ isExpanded = false;
mHideTimer.start();
}
@@ -645,12 +645,12 @@ private void openMenu() {
* 更新悬浮窗在屏幕中的位置。
*/
private void updateViewPosition() {
- isDraging = true;
+ isDrag = true;
try {
- if (!isExpaned) {
+ if (!isExpanded) {
if (wmParams.y - logoView.getHeight() / 2 <= 0) {
wmParams.y = 25;
- isDraging = true;
+ isDrag = true;
}
wManager.updateViewLayout(logoView, wmParams);
}
@@ -669,15 +669,15 @@ public void dismiss() {
logoView.clearAnimation();
try {
mHideTimer.cancel();
- if (isExpaned) {
+ if (isExpanded) {
wManager.removeViewImmediate(mHintLocation == LEFT ? leftView : rightView);
} else {
wManager.removeViewImmediate(logoView);
}
- isExpaned = false;
- isDraging = false;
+ isExpanded = false;
+ isDrag = false;
if (mGetViewCallback == null) {
- onDestoryed();
+ onDestroyed();
} else {
mGetViewCallback.onDestoryed();
}
@@ -694,7 +694,7 @@ public void dismiss() {
protected abstract void resetLogoViewSize(int hintLocation, View logoView);//logo恢复原始大小
- protected abstract void dragingLogoViewOffset(View logoView, boolean isDraging, boolean isResetPosition, float offset);
+ protected abstract void dragLogoViewOffset(View logoView, boolean isDraging, boolean isResetPosition, float offset);
protected abstract void shrinkLeftLogoView(View logoView);//logo左边收缩
@@ -706,7 +706,7 @@ public void dismiss() {
protected abstract void leftOrRightViewClosed(View logoView);
- protected abstract void onDestoryed();
+ protected abstract void onDestroyed();
public interface GetViewCallback {
View getLeftView(LayoutInflater inflater, View.OnTouchListener touchListener);
diff --git a/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java b/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java
index 9bb9900..e8102d5 100644
--- a/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java
+++ b/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MainActivity.java
@@ -33,7 +33,7 @@
import com.yw.game.floatmenu.FloatItem;
import com.yw.game.floatmenu.FloatLogoMenu;
import com.yw.game.floatmenu.FloatMenuView;
-import com.yw.game.floatmenu.customfloat.BaseFloatDailog;
+import com.yw.game.floatmenu.customfloat.BaseFloatDialog;
import java.util.ArrayList;
@@ -52,7 +52,7 @@ public class MainActivity extends Activity {
private int[] menuIcons = new int[]{R.drawable.yw_menu_account, R.drawable.yw_menu_fb, R.drawable.yw_menu_msg};
- BaseFloatDailog mBaseFloatDailog;
+ BaseFloatDialog mBaseFloatDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -105,15 +105,15 @@ public void run() {
}
- if (mBaseFloatDailog != null) return;
+ if (mBaseFloatDialog != null) return;
- mBaseFloatDailog = new MyFloatDialog(this);
- //mBaseFloatDailog.show();
+ mBaseFloatDialog = new MyFloatDialog(this);
+// mBaseFloatDialog.show();
}
private void showWithCallback() {
- mBaseFloatDailog = new BaseFloatDailog.FloatDialogImp(this, new BaseFloatDailog.GetViewCallback() {
+ mBaseFloatDialog = new BaseFloatDialog.FloatDialogImp(this, new BaseFloatDialog.GetViewCallback() {
@Override
public View getLeftView(LayoutInflater inflater, View.OnTouchListener touchListener) {
LinearLayout linearLayout = new LinearLayout(mActivity);
@@ -260,7 +260,7 @@ public void onDestoryed() {
}
});
- mBaseFloatDailog.show();
+ mBaseFloatDialog.show();
}
@@ -290,7 +290,7 @@ protected void onDestroy() {
destroyFloat();
super.onDestroy();
- if (mBaseFloatDailog != null) mBaseFloatDailog.dismiss();
+ if (mBaseFloatDialog != null) mBaseFloatDialog.dismiss();
}
@@ -303,7 +303,7 @@ public void hideFloat() {
public void destroyFloat() {
if (mFloatMenu != null) {
- mFloatMenu.destoryFloat();
+ mFloatMenu.destroyFloat();
}
mFloatMenu = null;
mActivity = null;
diff --git a/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MyFloatDialog.java b/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MyFloatDialog.java
index f78b98e..063e0b3 100644
--- a/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MyFloatDialog.java
+++ b/FloatMenuDemo/src/main/java/com/yw/game/floatmenu/demo/MyFloatDialog.java
@@ -8,13 +8,13 @@
import android.widget.ImageView;
import android.widget.Toast;
-import com.yw.game.floatmenu.customfloat.BaseFloatDailog;
+import com.yw.game.floatmenu.customfloat.BaseFloatDialog;
/**
* Created by wengyiming on 2017/9/13.
*/
-public class MyFloatDialog extends BaseFloatDailog {
+public class MyFloatDialog extends BaseFloatDialog {
public MyFloatDialog(Context context) {
@@ -54,7 +54,7 @@ protected void resetLogoViewSize(int hintLocation, View logoView) {
}
@Override
- protected void dragingLogoViewOffset(View logoView, boolean isDraging, boolean isResetPosition, float offset) {
+ protected void dragLogoViewOffset(View logoView, boolean isDraging, boolean isResetPosition, float offset) {
if (isDraging && offset > 0) {
logoView.setBackgroundDrawable(null);
logoView.setScaleX(1 + offset);
@@ -102,8 +102,8 @@ public void leftOrRightViewClosed(View smallView) {
}
@Override
- protected void onDestoryed() {
- if(isApplictionDialog()){
+ protected void onDestroyed() {
+ if(isApplicationDialog()){
if(getContext() instanceof Activity){
dismiss();
}
From 06af33651d94f5345995b9b3729205ad8b3f2d0c Mon Sep 17 00:00:00 2001
From: wengyiming
Date: Sun, 5 Jan 2020 17:40:17 +0800
Subject: [PATCH 4/8] fix: targetapi
---
FloatMenu/build.gradle | 6 +++---
FloatMenuDemo/build.gradle | 3 ++-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/FloatMenu/build.gradle b/FloatMenu/build.gradle
index 3191db7..0337c6f 100644
--- a/FloatMenu/build.gradle
+++ b/FloatMenu/build.gradle
@@ -7,11 +7,11 @@ apply plugin: 'com.jfrog.bintray'
version = "2.2.0"
android {
- compileSdkVersion 25
+ compileSdkVersion 28
defaultConfig {
minSdkVersion 11
- targetSdkVersion 25
+ targetSdkVersion 28
versionCode 1
versionName "1.1"
}
@@ -40,7 +40,7 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'com.android.support:support-v4:25.3.1'
+ implementation 'com.android.support:support-v4:28.0.0'
}
diff --git a/FloatMenuDemo/build.gradle b/FloatMenuDemo/build.gradle
index c910ea7..b86b9ac 100644
--- a/FloatMenuDemo/build.gradle
+++ b/FloatMenuDemo/build.gradle
@@ -24,6 +24,7 @@ dependencies {
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.yw.game.sclib:shortCutLib:0.0.3'
- implementation project(':FloatMenu')
implementation 'com.android.support:support-v4:28.0.0'
+ implementation project(':FloatMenu')
+ // implementation 'com.yw.game.floatmenu:FloatMenu:2.1.0'
}
From 6ef234b70eb70f266d9bb72e7010c7da2fa24995 Mon Sep 17 00:00:00 2001
From: wengyiming
Date: Sun, 5 Jan 2020 17:43:36 +0800
Subject: [PATCH 5/8] fix: update gitignore
---
.gitignore | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/.gitignore b/.gitignore
index f0adcc4..95a973d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,14 @@
*.iml
.gradle
/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+/.idea
.DS_Store
/build
/captures
-/.idea
-.idea
+.externalNativeBuild
From 4b6ab002f2d8fe1ea28864f5036ec9af17bc3fd5 Mon Sep 17 00:00:00 2001
From: wengyiming
Date: Tue, 7 Apr 2020 17:06:03 +0800
Subject: [PATCH 6/8] =?UTF-8?q?feat:=20=E9=80=82=E9=85=8DO+?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../customfloat/BaseFloatDialog.java | 23 +++++++------------
1 file changed, 8 insertions(+), 15 deletions(-)
diff --git a/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDialog.java b/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDialog.java
index c824cf3..0516b8c 100644
--- a/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDialog.java
+++ b/FloatMenu/src/main/java/com/yw/game/floatmenu/customfloat/BaseFloatDialog.java
@@ -181,7 +181,6 @@ public boolean onTouch(View v, MotionEvent event) {
private GetViewCallback mGetViewCallback;
-
public Context getContext() {
return mActivity;
}
@@ -323,9 +322,6 @@ public void onFinish() {
}
-
-
-
/**
* 初始化悬浮球 window
*/
@@ -340,13 +336,14 @@ private void initFloatWindow() {
} else {
wManager = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
//判断状态栏是否显示 如果不显示则statusBarHeight为0
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- if (Build.VERSION.SDK_INT > 23) {
- //在android7.1以上系统需要使用TYPE_PHONE类型 配合运行时权限
- wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
- } else {
- wmParams.type = WindowManager.LayoutParams.TYPE_TOAST;
- }
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ //在android7.1以上系统需要使用TYPE_PHONE类型 配合运行时权限
+ wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ //在android7.1以上系统需要使用TYPE_PHONE类型 配合运行时权限
+ wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
+ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ wmParams.type = WindowManager.LayoutParams.TYPE_TOAST;
} else {
wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
}
@@ -399,10 +396,6 @@ private void floatEventDown(MotionEvent event) {
}
-
-
-
-
/**
* 悬浮窗touch事件的 move 事件
*/
From 58721ee106013bfd75e86518ec8d63daf2f13160 Mon Sep 17 00:00:00 2001
From: wengyiming
Date: Tue, 7 Apr 2020 17:12:01 +0800
Subject: [PATCH 7/8] =?UTF-8?q?feat:=20=E9=80=82=E9=85=8DO+?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/yw/game/floatmenu/FloatLogoMenu.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java b/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java
index 950174d..738dc30 100644
--- a/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java
+++ b/FloatMenu/src/main/java/com/yw/game/floatmenu/FloatLogoMenu.java
@@ -300,13 +300,14 @@ private void initFloatWindow() {
wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION;
} else {
wManager = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- if (Build.VERSION.SDK_INT > 23) {
- //在android7.1以上系统需要使用TYPE_PHONE类型 配合运行时权限
- wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
- } else {
- wmParams.type = WindowManager.LayoutParams.TYPE_TOAST;
- }
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ //在android7.1以上系统需要使用TYPE_PHONE类型 配合运行时权限
+ wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ //在android7.1以上系统需要使用TYPE_PHONE类型 配合运行时权限
+ wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
+ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ wmParams.type = WindowManager.LayoutParams.TYPE_TOAST;
} else {
wmParams.type = WindowManager.LayoutParams.TYPE_PHONE;
}
From ad85459edaf567627d7a9aa8f0cd7b04714c2d85 Mon Sep 17 00:00:00 2001
From: wengyiming
Date: Tue, 7 Apr 2020 17:24:40 +0800
Subject: [PATCH 8/8] feat: gradle
---
FloatMenuDemo/src/main/AndroidManifest.xml | 2 +-
build.gradle | 2 +-
gradle/wrapper/gradle-wrapper.properties | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/FloatMenuDemo/src/main/AndroidManifest.xml b/FloatMenuDemo/src/main/AndroidManifest.xml
index 7c04d01..5360bea 100644
--- a/FloatMenuDemo/src/main/AndroidManifest.xml
+++ b/FloatMenuDemo/src/main/AndroidManifest.xml
@@ -2,7 +2,7 @@
- // .withContext(mActivity.getApplication())需要此权限
+
diff --git a/build.gradle b/build.gradle
index 3d95be2..5ccf9e1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.2.1'
+ classpath 'com.android.tools.build:gradle:3.6.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 3f86286..58ce8c6 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sun Mar 31 11:25:06 CST 2019
+#Tue Apr 07 17:13:25 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip