Skip to main content
ElyxCore предоставляет удобный класс Assets для работы с файлами ресурсов, расположенными в папке, путь к которой указан в refmap.

Использование

Вы можете получить доступ к ресурсам, обращаясь к объекту assets по имени файла без расширения.
from elyx import assets

# Доступ к ресурсу с именем "icon.png"
icon_asset = assets.icon

# Получение SVG-drawable
svg_drawable = assets.background.to_svg_drawable(width=32, height=32)

# Преобразование картинки в BitmapDrawable с нужным размером
bitmap_drawable = assets.icon.to_bitmap_drawable(width=64, height=64)

# Чтение содержимого файла
image_bytes = assets.icon.content_bytes()
svg_content = assets.background.content_string()
Предупреждение: Не называйте файлы с разными расширениями одинаковыми именами для корректной работы системы плагинов.

Методы класса elyx.Asset

@property
def path_str(self) -> str
Возвращает строку с полным постоянным путем к файлу для дальнейшего использования.
Пример использования
icon_path: str = assets.icon.path_str
@property
def java_file(self) -> java.io.File:
    return File(self.path_str)
Возвращает объект файла java.io.File с полным его путем.
Пример использования
icon_file = assets.icon.java_file
def to_image_location(self) -> org.telegram.messenger.ImageLocation
Возвращает готовый объект org.telegram.messenger.ImageLocation
Пример использования
img_loc = assets.image.to_image_location()
def to_drawable(self) -> android.graphics.drawable.Drawable
Возвращает готовый объект android.graphics.drawable.Drawable
Пример использования
drawable = assets.icon.to_drawable()
def to_bitmap_drawable(
    self,
    width: int = 32,
    height: int = 32
) -> android.graphics.drawable.BitmapDrawable
Создаёт объект android.graphics.drawable.BitmapDrawable с указанными параметрами. Тот же to_drawable(), но с параметрами размера.
Пример использования
drawable = assets.image.to_bitmap_drawable(64, 64)
def to_lottie_drawable(
    self,
    width: int = 32,
    height: int = 32
) -> org.telegram.ui.Components.RLottieDrawable
Создаёт объект org.telegram.ui.Components.RLottieDrawable с указанными размерами. Только для lottie-анимаций в виде json файла.
Пример использования
drawable = assets.anim.to_lottie_drawable(48, 48)
def to_svg_drawable(
    self,
    width: Optional[int] = None,
    height: Optional[int] = None,
    *args
) -> android.graphics.drawable.BitmapDrawable | org.telegram.messenger.SvgHelper.SvgDrawable
Создаёт объект android.graphics.drawable.BitmapDrawable с нужным размером и цветом, если вы их указали, или org.telegram.messenger.SvgHelper.SvgDrawable, если не указали ничего. Только для svg-файлов.
Пример использования
drawable = assets.logo.to_svg_drawable(48, 48)  # android.graphics.drawable.BitmapDrawable
drawable_other = assets.logo.to_svg_drawable()  # org.telegram.messenger.SvgHelper.SvgDrawable
Рекомендуется указывать размер всегда.
def to_svg_thumb(self, color_key: int, alpha: float) -> org.telegram.messenger.SvgHelper.SvgDrawable
Создаёт объект org.telegram.messenger.SvgHelper.SvgDrawable, ставя цвет и альфа в метод .setupGradient() Только для svg файлов.Тот же метод public static org.telegram.messenger.DocumentObject.getSvgThumb(sizes, colorKey, alpha), только для своих svg-файлов.
Пример использования
drawable = assets.logo.to_svg_thumb(Theme.key_windowBackgroundGray, 0.8)
def to_svg_bitmap(
    self,
    width: int = 32,
    height: int = 32,
    *args
) -> android.graphics.Bitmap
Создаёт объект android.graphics.Bitmap с указанными размерами. Только для svg файлов.
Пример использования
bitmap = assets.logo.to_svg_bitmap(48, 48)
def content_bytes(self) -> bytes
Возвращает контент из файла ресурса в байтах.
Пример использования
image_bytes: bytes = assets.image.content_bytes()
def content_string(self) -> str
Возвращает контент из файла ресурса в виде строки.
Пример использования
svg_text: str = assets.logo.content_string()
def content_bytes(self) -> bytes
Возвращает контент из файла ресурса в байтах.
Пример использования
image_bytes: bytes = assets.image.content_bytes()
def content_json(self) -> dict
Возвращает контент из файла ресурса в виде словаря, если это .json файл.
Пример использования
data: dict = assets.someone_data_file.content_json()
def content_yaml(self) -> dict
Возвращает контент из файла ресурса в виде словаря, если это .yaml (.yml) файл.
Пример использования
data: dict = assets.someone_data_file.content_yaml()