Этот проект представляет собой адаптацию открытого проекта BigBadaboom/androidsvg для использования с HarmonyOS. Вы можете отслеживать исходный проект через его метки и адрес GitHub https://github.com/BigBadaboom/androidsvg.
Переделанная версия: Release_1.4
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
.build.gradle
корневой директории добавьте mavenCentral()
:
// Верхнеуровневый файл сборки, где вы можете добавить общие конфигурационные опции для всех подпроектов/модулей.
...
buildscript {
repositories {
...
mavenCentral()
}
...
}``` все проекты {
репозитории {
...
mavenCentral()
}
}
build.gradle
директории модуля добавьте:
...
зависимости {
...
реализация 'com.gitee.ts_ohos:androidsvg-for-ohos:1.0.1'
}
Дополнительные примеры использования можно найти в модуле demo этого проекта, а также в документации исходного проекта JavaDoc и документации для OHOS. Java doc: https://gitee.com/ts_ohos/androidsvg-for-ohos/tree/ohos_main/doc
Основные методы использования следующие:
/** Чтение SVG */
/** Создание объекта SVG из InputStream. */
public static SVG getFromInputStream(java.io.InputStream is)
throws SVGParseException
/**
* Создает объект SVG из строки SVG.
*/
public static SVG getFromString(java.lang.String svg)
throws SVGParseException
/**
* Создает объект SVG из ресурса HAP.
*/
public static SVG getFromResource(Context context, int resourceId)
throws SVGParseException
/**
* Создает объект SVG из ресурса HAP rawfile.
*/
public static SVG getFromAsset(ResourceManager resManager, String filename)
throws SVGParseException, IOException
### Отрисовка SVG
```java
/**
* Отрисовывает объект SVG в объект Picture.
*/
public void renderToCanvas(Canvas canvas)
/**
* Отрисовывает объект SVG в объект Canvas с указанием области просмотра.
*/
public void renderToCanvas(Canvas canvas, RectF viewPort)
/**
* Открывает внешние файлы.
*/
public class CachingImageLoader extends SVGExternalFileResolver {
private static final String RESOURCE_PRE_FIX = "resources/rawfile/";
private ResourceManager assetManager;
private HashMap<String, PixelMap> cache = new HashMap<>();
``````markdown
## 4. Демонстрация эффектов
**1. Парсинг и рендеринг SVG в PixelMap**
**2. Парсинг и рендеринг SVG с применением CSS стилей**
**3. Парсинг и рендеринг SVG, отображение через SVGImageView с использованием AnimatorValue и CSS стилей для анимации**
**4. Парсинг и рендеринг SVG, отображение через SVGImageView с использованием AnimatorValue и CSS стилей для анимации. Также парсинг и отображение других статических изображений, привязанных внутри SVG**
```**Примечание: В демонстрационных GIF файлах эффект плавного изменения прозрачности пока недоступен**
<img src="./pic/demo_1.gif" width="200"><img src="./pic/demo_2.gif" width="200"><img src="./pic/demo_3.gif" width="200"><img src="./pic/demo_4.gif" width="200">
## 5. Версионирование
- v1.0.0 Оригинальная версия проекта, первое представление.
- v1.0.1 Обновление API HarmonyOS до версии 5.
## 6. Информация о версии и лицензии
- Лицензия Apache License 2.0
- [https://gitee.com/ts_ohos/androidsvg-for-ohos/blob/ohos_main/LICENSE](https://gitee.com/ts_ohos/androidsvg-for-ohos/blob/ohos_main/LICENSE)
Разрешено использование данного файла в соответствии с условиями Лицензии Apache, Версия 2.0 ("Лицензия").
Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если законодательство или письменное соглашение не требуют этого, программное обеспечение, распределённое в рамках данной Лицензии, предоставляется «как есть», без каких-либо гарантий или условий любого типа, включая явные или подразумеваемые гарантии.
См. Лицензию для получения информации о конкретных условиях использования и ограничений, предусмотренных Лицензией.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )