add: two samples for floaty
This commit is contained in:
31
app/src/main/assets/sample/悬浮窗/悬浮窗运行脚本按钮简单版.js
Normal file
31
app/src/main/assets/sample/悬浮窗/悬浮窗运行脚本按钮简单版.js
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
var path = "/sdcard/脚本/test.js";
|
||||||
|
if(!files.exists(path)){
|
||||||
|
toast("脚本文件不存在: " + path);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
var window = floaty.window(
|
||||||
|
<frame>
|
||||||
|
<button id="action" text="开始运行" w="90" h="40" bg="#77ffffff"/>
|
||||||
|
</frame>
|
||||||
|
);
|
||||||
|
|
||||||
|
var execution = null;
|
||||||
|
|
||||||
|
window.action.click(()=>{
|
||||||
|
if(window.action.getText() == '开始运行'){
|
||||||
|
execution = engines.execScriptFile(path);
|
||||||
|
window.action.setText('停止运行');
|
||||||
|
}else{
|
||||||
|
if(execution){
|
||||||
|
execution.getEngine().forceStop();
|
||||||
|
}
|
||||||
|
window.action.setText('开始运行');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
window.action.longClick(()=>{
|
||||||
|
window.setAdjustEnabled(!window.isAdjustEnabled());
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
setInterval(()=>{}, 1000);
|
||||||
62
app/src/main/assets/sample/悬浮窗/悬浮运行脚本按钮.js
Normal file
62
app/src/main/assets/sample/悬浮窗/悬浮运行脚本按钮.js
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
var path = "/sdcard/脚本/test.js";
|
||||||
|
if(!files.exists(path)){
|
||||||
|
toast("脚本文件不存在: " + path);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
var window = floaty.window(
|
||||||
|
<frame>
|
||||||
|
<button id="action" text="开始运行" w="90" h="40" bg="#77ffffff"/>
|
||||||
|
</frame>
|
||||||
|
);
|
||||||
|
|
||||||
|
var execution = null;
|
||||||
|
|
||||||
|
//记录按键被按下时的触摸坐标
|
||||||
|
var x = 0, y = 0;
|
||||||
|
//记录按键被按下时的悬浮窗位置
|
||||||
|
var windowX, windowY;
|
||||||
|
//记录按键被按下的时间以便判断长按等动作
|
||||||
|
var downTime;
|
||||||
|
|
||||||
|
window.action.setOnTouchListener(function(view, event){
|
||||||
|
switch(event.getAction()){
|
||||||
|
case event.ACTION_DOWN:
|
||||||
|
x = event.getRawX();
|
||||||
|
y = event.getRawY();
|
||||||
|
windowX = window.getX();
|
||||||
|
windowY = window.getY();
|
||||||
|
downTime = new Date().getTime();
|
||||||
|
return true;
|
||||||
|
case event.ACTION_MOVE:
|
||||||
|
//移动手指时调整悬浮窗位置
|
||||||
|
window.setPosition(windowX + (event.getRawX() - x),
|
||||||
|
windowY + (event.getRawY() - y));
|
||||||
|
//如果按下的时间超过1.5秒判断为长按,退出脚本
|
||||||
|
if(new Date().getTime() - downTime > 1500){
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
case event.ACTION_UP:
|
||||||
|
//手指弹起时如果偏移很小则判断为点击
|
||||||
|
if(Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5){
|
||||||
|
onClick();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
function onClick(){
|
||||||
|
if(window.action.getText() == '开始运行'){
|
||||||
|
execution = engines.execScriptFile(path);
|
||||||
|
window.action.setText('停止运行');
|
||||||
|
}else{
|
||||||
|
if(execution){
|
||||||
|
execution.getEngine().forceStop();
|
||||||
|
}
|
||||||
|
window.action.setText('开始运行');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setInterval(()=>{}, 1000);
|
||||||
|
|
||||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
|||||||
import android.content.ContextWrapper;
|
import android.content.ContextWrapper;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.view.ContextThemeWrapper;
|
import android.view.ContextThemeWrapper;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|||||||
Reference in New Issue
Block a user