Runtime v2.81 · Cập nhật 30 thg 9, 2026

OverlayText

Vẽ text đè lên màn hình với tùy chọn theo dõi tương tác (ấn/kéo/giữ).

Cú pháp

OverlayText(text="", position=(0, 0), color="#FFFFFFFF", size=16, background=None)

Tham số khởi tạo

TênMô tả
textString
Nội dung text ban đầu.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: ""
positionPoint | tuple[Number, Number]
Vị trí ban đầu dạng Point hoặc tuple/list (x, y). Point mang metadata scale/anchor.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: (0, 0)
colorColor | String | Number
Màu chữ ban đầu.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: white
sizeNumber
Cỡ chữ ban đầu (sp).
Tùy chọn · Theo vị trí hoặc tên
Mặc định: 16
backgroundColor | String | Number | None
Màu nền ban đầu. None nghĩa là trong suốt/không có nền.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: None

Giá trị trả về

OverlayText

Hành vi / tác động

Vẽ text đè lên màn hình với tùy chọn theo dõi tương tác (ấn/kéo/giữ). Các tên setter như text/background là method; đọc giá trị hiện tại qua state().

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

badge = OverlayText("Running...", Point(320, 160, scale="width", anchor="top"), background=None)
badge.color("#FF00E676").background("#66000000").size(18).track(press=True, move=True, hold=True, hold_ms=700)
badge.show()

state = badge.state()
if state["status"] == 2:
    MacroPanel.notify("Badge is moving")

p = badge.get_point()
r = badge.get_region()
if r is not None:
    r.highlight("yellow", auto_hide_ms=600)

badge.hide()   # ẩn nhanh
badge.show()   # hiện lại nhanh
badge.off()    # giải phóng hoàn toàn

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

Thuộc tính

TênMô tả
xNumber
Vị trí X góc trên-trái theo pixel. Có thể gán trước show().
Mặc định: 0
yNumber
Vị trí Y góc trên-trái theo pixel. Có thể gán trước show().
Mặc định: 0
scaleString
Chế độ scale tọa độ được copy từ Point vị trí.
Mặc định: fixed
anchorString
Neo tọa độ được copy từ Point vị trí.
Mặc định: none
argbColor
Màu chữ. Có thể gán bằng Color/chuỗi màu/số. Dùng overlay.color(value) nếu muốn chain method.
Mặc định: white
size_spNumber
Cỡ chữ theo sp. Dùng overlay.size(sp) nếu muốn chain method.
Mặc định: 16
Ví dụ khởi tạo
badge = OverlayText("Ready", Point(420, 220, scale="width", anchor="top"), background=None)

Phương thức

13 phương thức

OverlayText.off_all

Tắt và giải phóng toàn bộ overlay text do luồng hiện tại tạo, không ảnh hưởng các luồng chạy song song.

Cú pháp

OverlayText.off_all()

Tham số

Không có

Giá trị trả về

None — Không có giá trị trả về.

Hành vi / tác động

Tắt và giải phóng toàn bộ overlay text do luồng hiện tại tạo, không ảnh hưởng các luồng chạy song song.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Giải phóng các overlay thuộc luồng này
a = OverlayText("Running", (24, 120))
a.show()
OverlayText.off_all()

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.text

Cập nhật nội dung text hiển thị.

Cú pháp

overlay.text(value)

Tham số

TênMô tả
valueString
Nội dung text.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định

Giá trị trả về

OverlayText — Trả về chính builder overlay text.

Hành vi / tác động

Cập nhật nội dung text hiển thị.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.text("Running")
badge.show()

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.color

Cập nhật màu chữ.

Cú pháp

overlay.color(value)

Tham số

TênMô tả
valueColor | String | Number
Giá trị màu.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định

Giá trị trả về

OverlayText — Trả về chính builder overlay text.

Hành vi / tác động

Cập nhật màu chữ.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.color("#FF00E676")
badge.show()

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.background

Cập nhật màu nền.

Cú pháp

overlay.background(value=None)

Tham số

TênMô tả
valueColor | String | Number | None
Màu nền, hoặc None để trong suốt/không có nền.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: None

Giá trị trả về

OverlayText — Trả về chính builder overlay text.

Hành vi / tác động

Cập nhật màu nền. Truyền None để bỏ nền.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.background("#66000000")
badge.show()
badge.background(None)

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.size

Cập nhật cỡ chữ (sp).

Cú pháp

overlay.size(sp)

Tham số

TênMô tả
spNumber
Cỡ chữ theo đơn vị sp.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định

Giá trị trả về

OverlayText — Trả về chính builder overlay text.

Hành vi / tác động

Cập nhật cỡ chữ (sp).

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.size(20)
badge.show()

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.position

Cập nhật vị trí vẽ bằng Point hoặc tuple/list (x, y).

Cú pháp

overlay.position(position)

Tham số

TênMô tả
positionPoint | tuple[Number, Number]
Vị trí mới.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định

Giá trị trả về

OverlayText — Trả về chính builder overlay text.

Hành vi / tác động

Cập nhật vị trí vẽ bằng Point hoặc tuple/list (x, y). Point mang metadata scale/anchor.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.position((80, 160))
badge.show()

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.track

Cấu hình theo dõi tương tác.

Cú pháp

overlay.track(press=False, move=False, hold=False, hold_ms=600)

Tham số

TênMô tả
pressBoolean
Theo dõi trạng thái ấn/thả.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: False
moveBoolean
Cho phép người dùng kéo để di chuyển text.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: False
holdBoolean
Theo dõi trạng thái giữ lâu.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: False
hold_msNumber
Ngưỡng thời gian để coi tương tác là đang giữ lâu, tính theo milliseconds.
Tùy chọn · Theo vị trí hoặc tên
Mặc định: 600

Giá trị trả về

OverlayText — Trả về chính builder overlay text.

Hành vi / tác động

Cấu hình theo dõi tương tác. Nếu tất cả cờ đều False thì text đứng yên ở vị trí khai báo.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.track(press=True, move=True, hold=True, hold_ms=700)
badge.show()
print(badge.state())

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.get_point

Lấy point góc trên-trái hiện tại của overlay text.

Cú pháp

overlay.get_point()

Tham số

Không có

Giá trị trả về

Point — Vị trí overlay hiện tại theo pixel màn hình.

Hành vi / tác động

Lấy point góc trên-trái hiện tại của overlay text. Vị trí này sẽ được cập nhật sau khi người dùng kéo di chuyển.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.show()
point = badge.get_point()
print(point.x, point.y)

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.get_region

Lấy region bao quanh kích thước overlay text hiện tại.

Cú pháp

overlay.get_region()

Tham số

Không có

Giá trị trả về

Region? — Region bao quanh overlay text, hoặc None. Luôn kiểm tra None trước khi dùng region.

Hành vi / tác động

Lấy region bao quanh kích thước overlay text hiện tại. Trả về None khi overlay chưa hiển thị hoặc chưa đo xong kích thước.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.show()
bounds = badge.get_region()
if bounds is not None:
    print(bounds.width, bounds.height)

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.show

Hiển thị text overlay (hoặc hiện lại sau hide()).

Cú pháp

overlay.show()

Tham số

Không có

Giá trị trả về

dict — dict trạng thái hiện tại của overlay.

Hành vi / tác động

Hiển thị text overlay (hoặc hiện lại sau hide()).

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
print(badge.show())

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.hide

Ẩn overlay text nhưng giữ view đã cache để show() lại nhanh hơn.

Cú pháp

overlay.hide()

Tham số

Không có

Giá trị trả về

dict — dict trạng thái hiện tại của overlay.

Hành vi / tác động

Ẩn overlay text nhưng giữ view đã cache để show() lại nhanh hơn.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.show()
badge.hide()
badge.show()

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.off

Tắt overlay text và giải phóng tài nguyên.

Cú pháp

overlay.off()

Tham số

Không có

Giá trị trả về

dict — dict trạng thái hiện tại của overlay.

Hành vi / tác động

Tắt overlay text và giải phóng tài nguyên.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.show()
print(badge.off())

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan

OverlayText.state

Trả về trạng thái tương tác hiện tại.

Cú pháp

overlay.state()

Tham số

Không có

Giá trị trả về

dict — dict trạng thái gồm status/status_label, cờ tracking, và width/height của overlay theo pixel (nếu có).

Hành vi / tác động

Trả về trạng thái tương tác hiện tại. Bản đồ mã: 0=IDLE, 1=PRESSED, 2=MOVING, 3=HOLDING, 4=RELEASED, 5=HIDDEN, 6=OFF. Khi gọi state(), PRESSED và RELEASED sẽ tự reset về IDLE cho lần đọc kế tiếp; MOVING và HOLDING thì không tự reset.

Thực thi

  • Chờ hoàn tất: Tùy điều kiện
  • An toàn khi chạy đồng thời: Dùng đối tượng riêng cho mỗi luồng
  • Chạy song song: Tùy điều kiện

Mỗi luồng sở hữu id overlay riêng; off_all() chỉ giải phóng overlay của luồng đó. Công việc UI chuyển qua Android Main và có thể tạm chờ luồng gọi. Giữ builder overlay có thể thay đổi trong luồng sở hữu.

Ví dụ

# Cấu hình hoặc kiểm tra overlay thuộc luồng này
badge = OverlayText("Ready", (24, 120))
badge.track(press=True, move=True)
badge.show()
state = badge.state()
print(state["status_label"])

Lỗi / giới hạn

Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.

API liên quan