Files
2026-09-24 16:25:22 +08:00

39 lines
1.3 KiB
Plaintext

import View from "android.view.View";
import InputStream from "java.io.InputStream";
import Context from "com.alibaba.fastjson.parser.deserializer.ASMDeserializerFactory.Context";
import FileInputStream from "java.io.FileInputStream";
import File from "java.io.File";
import PictureDrawable from "android.graphics.drawable.PictureDrawable";
import SVG from "com.caverock.androidsvg.SVG"
import ImageView from 'android.widget.ImageView';
export class xSvgU {
$element : UniNativeViewElement;
targetView : ImageView | null = null;
constructor(element : UniNativeViewElement) {
//接收传递过来的UniNativeViewElement
this.$element = element;
this.bindView();
}
bindView() {
this.targetView = new ImageView(this.$element.getAndroidActivity()!); //构建原生view
this.$element.bindAndroidView(this.targetView!);
}
setImage(newval:string){
let furl = UTSAndroid.convert2AbsFullPath(newval)
let inputStream:InputStream|null = null;
if(furl.indexOf('android_asset')==-1){
inputStream = new FileInputStream(new File(furl))
}else{
inputStream = UTSAndroid.getUniActivity()!.getAssets().open(furl.replace("/android_asset/", ""));
}
if(inputStream ==null) return
let svg = SVG.getFromInputStream(inputStream!);
let pictureDrawable = new PictureDrawable(svg.renderToPicture());
this.targetView?.setImageDrawable(pictureDrawable);
}
}