From 7bf9b3f0d9b60c7b61c170b101dfc314e78404c6 Mon Sep 17 00:00:00 2001
From: hyb1996 <946994919@qq.com>
Date: Thu, 30 Nov 2017 00:49:06 +0800
Subject: [PATCH] update dynamic layout inflater to latest version; add some ui
samples
---
app/src/main/assets/sample/界面/文本控件.js | 16 ++
app/src/main/assets/sample/界面/用户调查.js | 46 ++--
.../java/com/stardust/scriptdroid/App.java | 5 +-
autojs/build.gradle | 4 +-
autojs/src/main/assets/modules/__images__.js | 17 ++
.../autojs/core/image/ColorDetector.java | 199 ++++++++++++++++++
.../autojs/core/ui/ConvertLayoutInflater.java | 4 +-
.../stardust/autojs/core/ui/JsViewHelper.java | 4 +-
.../autojs/core/ui/widget/JsButton.java | 9 +-
.../autojs/core/ui/widget/JsEditText.java | 13 +-
.../autojs/core/ui/widget/JsTextView.java | 12 +-
.../autojs/core/ui/widget/JsWebView.java | 52 +++++
.../autojs/core/ui/xml/XmlConverter.java | 22 ++
.../stardust/autojs/runtime/api/Images.java | 2 -
14 files changed, 368 insertions(+), 37 deletions(-)
create mode 100644 app/src/main/assets/sample/界面/文本控件.js
create mode 100644 autojs/src/main/java/com/stardust/autojs/core/image/ColorDetector.java
create mode 100644 autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsWebView.java
diff --git a/app/src/main/assets/sample/界面/文本控件.js b/app/src/main/assets/sample/界面/文本控件.js
new file mode 100644
index 00000000..4d8a61ea
--- /dev/null
+++ b/app/src/main/assets/sample/界面/文本控件.js
@@ -0,0 +1,16 @@
+"ui";
+
+ui.layout(
+
+ 大字
+ 小字
+ 加粗
+ 斜体
+ 原谅色
+ Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
+ Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
+ Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
+ 居中
+ 自动超链接网址www.baidu.com, 邮箱 123@qq.com等
+
+);
\ No newline at end of file
diff --git a/app/src/main/assets/sample/界面/用户调查.js b/app/src/main/assets/sample/界面/用户调查.js
index 8c8e2992..0e6efe17 100644
--- a/app/src/main/assets/sample/界面/用户调查.js
+++ b/app/src/main/assets/sample/界面/用户调查.js
@@ -10,38 +10,38 @@ ui.layout(
1. 您的年龄是?
2. 您用过其他类似软件(脚本精灵,按键精灵等)吗?
-
-
-
-
-
-
+
+
+
+
+
+
3. 您使用Auto.js通常用于做什么?(多选)
-
-
-
-
-
+
+
+
+
+
-
+
4. 您更喜欢以下哪个图标?
-
-
+
+
-
+
-
+
5. 您是什么时候开始使用Auto.js的呢?
-
+
6. 您用过下面这个Auto.js的论坛吗?
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/app/src/main/java/com/stardust/scriptdroid/App.java b/app/src/main/java/com/stardust/scriptdroid/App.java
index 112bf255..218446a2 100644
--- a/app/src/main/java/com/stardust/scriptdroid/App.java
+++ b/app/src/main/java/com/stardust/scriptdroid/App.java
@@ -10,8 +10,6 @@ import android.widget.ImageView;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;
import com.flurry.android.FlurryAgent;
-import com.nickandjerry.dynamiclayoutinflator.lib.ImageLoader;
-import com.nickandjerry.dynamiclayoutinflator.lib.util.Drawables;
import com.raizlabs.android.dbflow.config.DatabaseConfig;
import com.raizlabs.android.dbflow.config.FlowConfig;
import com.raizlabs.android.dbflow.config.FlowManager;
@@ -29,6 +27,9 @@ import com.stardust.theme.ThemeColor;
import com.stardust.theme.ThemeColorManager;
import com.stardust.util.UiHandler;
+import org.autojs.dynamiclayoutinflater.ImageLoader;
+import org.autojs.dynamiclayoutinflater.util.Drawables;
+
import java.lang.ref.WeakReference;
/**
diff --git a/autojs/build.gradle b/autojs/build.gradle
index a8e26c6a..bf93d404 100644
--- a/autojs/build.gradle
+++ b/autojs/build.gradle
@@ -40,9 +40,7 @@ dependencies {
})
testCompile 'junit:junit:4.12'
compile fileTree(dir: 'libs', include: ['*.jar'])
- compile('com.github.hyb1996:DynamicLayoutInflator:0.22', {
- exclude group: 'com.android.support'
- })
+ compile('com.github.hyb1996:DynamicLayoutInflator:0.26')
compile 'org.greenrobot:eventbus:3.0.0'
compile 'net.lingala.zip4j:zip4j:1.3.2'
compile('com.afollestad.material-dialogs:core:0.9.2.3', {
diff --git a/autojs/src/main/assets/modules/__images__.js b/autojs/src/main/assets/modules/__images__.js
index dd1e6e6e..000ed8d4 100644
--- a/autojs/src/main/assets/modules/__images__.js
+++ b/autojs/src/main/assets/modules/__images__.js
@@ -100,6 +100,23 @@ module.exports = function(__runtime__, scope){
});
}
+ function getColorDetector(color, algorithm, threshold){
+ switch(algorithm){
+ case "rgb":
+ return new com.stardust.autojs.core.image.ColorDetector.RGBDistanceDetector(color, threshold);
+ case "equal":
+ return new com.stardust.autojs.core.image.ColorDetector.EqualityDetector(color);
+ case "diff":
+ return new com.stardust.autojs.core.image.ColorDetector.DifferenceDetector(color, threshold);
+ case "rgb+":
+ return new com.stardust.autojs.core.image.ColorDetector.WeightedRGBDistanceDetector(color, threshold);
+ case "hs":
+ return new com.stardust.autojs.core.image.ColorDetector.HSDistanceDetector(color, threshold);
+ }
+ throw new Error("Unknown algorithm: " + algorithm);
+ }
+
+
function toPointArray(points){
var arr = [];
for(var i = 0; i < points.length; i++){
diff --git a/autojs/src/main/java/com/stardust/autojs/core/image/ColorDetector.java b/autojs/src/main/java/com/stardust/autojs/core/image/ColorDetector.java
new file mode 100644
index 00000000..76a1fef4
--- /dev/null
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ColorDetector.java
@@ -0,0 +1,199 @@
+package com.stardust.autojs.core.image;
+
+import android.graphics.Color;
+
+/**
+ * Created by Stardust on 2017/5/20.
+ */
+
+public interface ColorDetector {
+
+ boolean detectsColor(int red, int green, int blue);
+
+ abstract class AbstractColorDetector implements ColorDetector {
+
+ protected final int mColor;
+ protected final int mR, mG, mB;
+
+ public AbstractColorDetector(int color) {
+ mColor = color;
+ mR = Color.red(color);
+ mG = Color.green(color);
+ mB = Color.blue(color);
+ }
+ }
+
+ class EqualityDetector extends AbstractColorDetector {
+
+
+ public EqualityDetector(int color) {
+ super(color);
+ }
+
+ @Override
+ public boolean detectsColor(int red, int green, int blue) {
+ return mR == red && mG == green && mB == blue;
+ }
+ }
+
+ class DifferenceDetector extends AbstractColorDetector {
+
+ private final int mThreshold;
+
+ public DifferenceDetector(int color, int threshold) {
+ super(color);
+ mThreshold = threshold * 3;
+ }
+
+
+ @Override
+ public boolean detectsColor(int R, int G, int B) {
+ return Math.abs(R - mR) + Math.abs(G - mG) + Math.abs(B - mB) <= mThreshold;
+ }
+ }
+
+ class RDistanceDetector extends AbstractColorDetector {
+
+ private final int mThreshold;
+
+ public RDistanceDetector(int color, int threshold) {
+ super(color);
+ mThreshold = threshold;
+ }
+
+ @Override
+ public boolean detectsColor(int R, int G, int B) {
+ return Math.abs(mR - R) <= mThreshold;
+ }
+ }
+
+ class RGBDistanceDetector extends AbstractColorDetector {
+
+ private final int mThreshold;
+
+ public RGBDistanceDetector(int color, int threshold) {
+ super(color);
+ mThreshold = threshold * threshold * 3;
+ }
+
+ @Override
+ public boolean detectsColor(int R, int G, int B) {
+ int dR = R - mR;
+ int dG = G - mG;
+ int dB = B - mB;
+ int d = dR * dR + dG * dG + dB * dB;
+ return d <= mThreshold;
+ }
+ }
+
+ class WeightedRGBDistanceDetector extends AbstractColorDetector {
+
+ private final int mThreshold;
+ private final int mR, mG, mB;
+
+ public WeightedRGBDistanceDetector(int color, int threshold) {
+ super(color);
+ mR = (color & 0xff0000) >> 16;
+ mG = (color & 0x00ff00) >> 8;
+ mB = color & 0xff;
+ mThreshold = threshold * threshold * 8;
+ }
+
+ @Override
+ public boolean detectsColor(int R, int G, int B) {
+ int dR = R - mR;
+ int dG = G - mG;
+ int dB = B - mB;
+ double meanR = (mR + R) / 2;
+ double weightR = 2 + meanR / 256;
+ double weightG = 4.0;
+ double weightB = 2 + (255 - meanR) / 256;
+ return weightR * dR * dR + weightG * dG * dG + weightB * dB * dB <= mThreshold;
+ }
+ }
+
+ class HDistanceDetector extends AbstractColorDetector {
+
+ private final int mH;
+ private final int mThreshold;
+
+ public HDistanceDetector(int color, int threshold) {
+ super(color);
+ mH = getH(mR, mG, mB);
+ mThreshold = threshold;
+ }
+
+ @Override
+ public boolean detectsColor(int R, int G, int B) {
+ return Math.abs(mH - getH(R, G, B)) <= mThreshold;
+ }
+
+ private static int getH(int R, int G, int B) {
+ int max, min, H;
+ if (R > G) {
+ min = Math.min(G, B);
+ max = Math.max(R, B);
+ } else {
+ min = Math.min(R, B);
+ max = Math.max(G, B);
+ }
+ if (R == max) {
+ H = (G - B) / (max - min) * 60;
+ } else if (G == max) {
+ H = 120 + (B - R) / (max - min) * 60;
+ } else {
+ H = 240 + (R - G) / (max - min) * 60;
+ }
+ if (H < 0) H = H + 360;
+ return H;
+ }
+ }
+
+ class HSDistanceDetector extends AbstractColorDetector {
+
+ private final int mH, mS;
+ private final int mThreshold;
+
+ public HSDistanceDetector(int color, int threshold) {
+ super(color);
+ long HS = getHS(mR, mG, mB);
+ mH = (int) (HS & 0xffffffffL);
+ mS = (int) ((HS >> 32) & 0xffffffffL);
+ mThreshold = threshold * 3729600 / 255;
+ }
+
+ public HSDistanceDetector(int color, float similarity) {
+ this(color, (int) (1.0f - similarity) * 255);
+ }
+
+ @Override
+ public boolean detectsColor(int R, int G, int B) {
+ long hs = getHS(R, G, B);
+ int dH = (int) (hs & 0xffffffffL) - mH;
+ int dS = (int) ((hs >> 32) & 0xffffffffL) - mS;
+ return dH * dH + dS * dS <= mThreshold;
+ }
+
+ private static long getHS(int R, int G, int B) {
+ int max, min, H;
+ if (R > G) {
+ min = Math.min(G, B);
+ max = Math.max(R, B);
+ } else {
+ min = Math.min(R, B);
+ max = Math.max(G, B);
+ }
+ if (R == max) {
+ H = (G - B) / (max - min) * 60;
+ } else if (G == max) {
+ H = 120 + (B - R) / (max - min) * 60;
+ } else {
+ H = 240 + (R - G) / (max - min) * 60;
+ }
+ if (H < 0) H = H + 360;
+ int S = (max - min) * 100 / max;
+ return H & ((long) S << 32);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/ConvertLayoutInflater.java b/autojs/src/main/java/com/stardust/autojs/core/ui/ConvertLayoutInflater.java
index 5289273e..67d771a5 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/ConvertLayoutInflater.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/ConvertLayoutInflater.java
@@ -6,12 +6,12 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-import com.nickandjerry.dynamiclayoutinflator.lib.DynamicLayoutInflater;
-import com.nickandjerry.dynamiclayoutinflator.lib.util.Drawables;
import com.stardust.autojs.core.ui.widget.JsFrameLayout;
import com.stardust.autojs.core.ui.xml.XmlConverter;
import com.stardust.util.MapEntries;
+import org.autojs.dynamiclayoutinflater.DynamicLayoutInflater;
+
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/JsViewHelper.java b/autojs/src/main/java/com/stardust/autojs/core/ui/JsViewHelper.java
index 378ec717..600afa51 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/JsViewHelper.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/JsViewHelper.java
@@ -7,7 +7,7 @@ import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
-import com.nickandjerry.dynamiclayoutinflator.lib.util.Ids;
+import org.autojs.dynamiclayoutinflater.util.Ids;
/**
@@ -18,7 +18,7 @@ public class JsViewHelper {
@Nullable
public static View findViewByStringId(View view, String id) {
- View result = view.findViewById(Ids.getIdFromName(id));
+ View result = view.findViewById(Ids.parse(id));
if (result != null)
return result;
if (!(view instanceof ViewGroup)) {
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsButton.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsButton.java
index 54ceb624..ca836f78 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsButton.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsButton.java
@@ -1,13 +1,16 @@
package com.stardust.autojs.core.ui.widget;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
+import android.widget.Button;
/**
* Created by Stardust on 2017/5/15.
*/
-public class JsButton extends android.support.v7.widget.AppCompatButton {
+@SuppressLint("AppCompatCustomView")
+public class JsButton extends Button {
public JsButton(Context context) {
super(context);
}
@@ -20,6 +23,10 @@ public class JsButton extends android.support.v7.widget.AppCompatButton {
super(context, attrs, defStyleAttr);
}
+ public JsButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
public String text() {
return getText().toString();
}
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsEditText.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsEditText.java
index 201f8b39..a4e8bfb3 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsEditText.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsEditText.java
@@ -1,13 +1,18 @@
package com.stardust.autojs.core.ui.widget;
+import android.annotation.SuppressLint;
import android.content.Context;
+import android.os.Build;
+import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
+import android.widget.EditText;
/**
* Created by Stardust on 2017/5/15.
*/
-public class JsEditText extends android.support.v7.widget.AppCompatEditText {
+@SuppressLint("AppCompatCustomView")
+public class JsEditText extends EditText {
public JsEditText(Context context) {
super(context);
}
@@ -18,6 +23,12 @@ public class JsEditText extends android.support.v7.widget.AppCompatEditText {
public JsEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
+
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ public JsEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
}
public String text() {
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsTextView.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsTextView.java
index 820fe3aa..9867fa80 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsTextView.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsTextView.java
@@ -1,14 +1,19 @@
package com.stardust.autojs.core.ui.widget;
+import android.annotation.SuppressLint;
import android.content.Context;
+import android.os.Build;
import android.support.annotation.Nullable;
+import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
+import android.widget.TextView;
/**
* Created by Stardust on 2017/5/15.
*/
-public class JsTextView extends android.support.v7.widget.AppCompatTextView {
+@SuppressLint("AppCompatCustomView")
+public class JsTextView extends TextView {
public JsTextView(Context context) {
super(context);
}
@@ -21,6 +26,11 @@ public class JsTextView extends android.support.v7.widget.AppCompatTextView {
super(context, attrs, defStyleAttr);
}
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ public JsTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
public String text() {
return getText().toString();
}
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsWebView.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsWebView.java
new file mode 100644
index 00000000..510a2b0d
--- /dev/null
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsWebView.java
@@ -0,0 +1,52 @@
+package com.stardust.autojs.core.ui.widget;
+
+import android.content.Context;
+import android.os.Build;
+import android.support.annotation.RequiresApi;
+import android.util.AttributeSet;
+import android.webkit.WebChromeClient;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+/**
+ * Created by Stardust on 2017/11/29.
+ */
+
+public class JsWebView extends WebView {
+
+ public JsWebView(Context context) {
+ super(context);
+ init();
+ }
+
+ public JsWebView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public JsWebView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ public JsWebView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ private void init() {
+ WebSettings settings = getSettings();
+ settings.setUseWideViewPort(true);
+ settings.setBuiltInZoomControls(true);
+ settings.setLoadWithOverviewMode(true);
+ settings.setJavaScriptEnabled(true);
+ settings.setJavaScriptCanOpenWindowsAutomatically(true);
+ settings.setDomStorageEnabled(true);
+ settings.setDisplayZoomControls(false);
+ setWebViewClient(new WebViewClient());
+ setWebChromeClient(new WebChromeClient());
+ }
+
+}
diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/xml/XmlConverter.java b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/XmlConverter.java
index 42ef4fd2..38459328 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/ui/xml/XmlConverter.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/XmlConverter.java
@@ -1,11 +1,22 @@
package com.stardust.autojs.core.ui.xml;
+import android.webkit.WebView;
+import android.widget.CheckBox;
+import android.widget.DatePicker;
+import android.widget.ProgressBar;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.SeekBar;
+import android.widget.Spinner;
+import android.widget.TimePicker;
+
import com.stardust.autojs.core.ui.widget.JsButton;
import com.stardust.autojs.core.ui.widget.JsEditText;
import com.stardust.autojs.core.ui.widget.JsFrameLayout;
import com.stardust.autojs.core.ui.widget.JsLinearLayout;
import com.stardust.autojs.core.ui.widget.JsRelativeLayout;
import com.stardust.autojs.core.ui.widget.JsTextView;
+import com.stardust.autojs.core.ui.widget.JsWebView;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
@@ -16,6 +27,7 @@ import org.xml.sax.SAXException;
import java.io.IOException;
import java.io.StringReader;
+import java.util.Date;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -32,11 +44,21 @@ public class XmlConverter {
.defaultHandler(new NodeHandler.MapNameHandler()
.map("frame", JsFrameLayout.class.getName())
.map("linear", JsLinearLayout.class.getName())
+ .map("horizontal", JsLinearLayout.class.getName())
.map("relative", JsRelativeLayout.class.getName())
.map("button", JsButton.class.getName())
.map("text", JsTextView.class.getName())
.map("input", JsEditText.class.getName())
.map("img", "ImageView")
+ .map("datepicker", DatePicker.class.getName())
+ .map("timepicker", TimePicker.class.getName())
+ .map("webview", JsWebView.class.getName())
+ .map("progressbar", ProgressBar.class.getName())
+ .map("seekbar", SeekBar.class.getName())
+ .map("spinner", Spinner.class.getName())
+ .map("radio", RadioButton.class.getName())
+ .map("radiogroup", RadioGroup.class.getName())
+ .map("checkbox", CheckBox.class.getName())
);
private static final AttributeHandler ATTRIBUTE_HANDLER = new AttributeHandler.AttrNameRouter()
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Images.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Images.java
index 1ca37957..c3460819 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Images.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Images.java
@@ -14,8 +14,6 @@ import android.view.Display;
import android.view.Surface;
import android.view.WindowManager;
-import com.nickandjerry.dynamiclayoutinflator.lib.ImageLoader;
-import com.nickandjerry.dynamiclayoutinflator.lib.util.Drawables;
import com.stardust.autojs.annotation.ScriptVariable;
import com.stardust.autojs.core.image.ColorFinder;
import com.stardust.autojs.core.image.ImageWrapper;