feat:Image add imageFilePath
This commit is contained in:
parent
57cfdd38e1
commit
bfa865fe5d
@ -51,6 +51,8 @@ import com.github.pengfeizhou.jscore.JSONBuilder;
|
|||||||
import com.github.pengfeizhou.jscore.JSObject;
|
import com.github.pengfeizhou.jscore.JSObject;
|
||||||
import com.github.pengfeizhou.jscore.JSValue;
|
import com.github.pengfeizhou.jscore.JSValue;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||||
import pub.doric.DoricContext;
|
import pub.doric.DoricContext;
|
||||||
import pub.doric.extension.bridge.DoricPlugin;
|
import pub.doric.extension.bridge.DoricPlugin;
|
||||||
@ -422,6 +424,14 @@ public class ImageNode extends ViewNode<ImageView> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "imageFilePath":
|
||||||
|
if (!prop.isString()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String filePath = prop.asString().value();
|
||||||
|
File file = new File(filePath);
|
||||||
|
loadIntoTarget(Glide.with(getContext()).load(file));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
super.blend(view, name, prop);
|
super.blend(view, name, prop);
|
||||||
break;
|
break;
|
||||||
|
@ -345,16 +345,7 @@ - (void)blendView:(UIImageView *)view forPropName:(NSString *)name propValue:(id
|
|||||||
|
|
||||||
}
|
}
|
||||||
} else if ([@"imageRes" isEqualToString:name]) {
|
} else if ([@"imageRes" isEqualToString:name]) {
|
||||||
#if __has_include(<YYWebImage/YYWebImage.h>)
|
UIImage *image = [self imageNamed:prop];
|
||||||
YYImage *image = [YYImage imageNamed:prop];
|
|
||||||
#elif __has_include(<SDWebImage/SDWebImage.h>)
|
|
||||||
UIImage *image = [SDAnimatedImage imageNamed:prop];
|
|
||||||
if (!image) {
|
|
||||||
image = [UIImage imageNamed:prop];
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
UIImage *image = [UIImage imageNamed:prop];
|
|
||||||
#endif
|
|
||||||
if (image) {
|
if (image) {
|
||||||
view.image = image;
|
view.image = image;
|
||||||
} else {
|
} else {
|
||||||
@ -375,16 +366,20 @@ - (void)blendView:(UIImageView *)view forPropName:(NSString *)name propValue:(id
|
|||||||
NSString *path = [[NSBundle mainBundle] bundlePath];
|
NSString *path = [[NSBundle mainBundle] bundlePath];
|
||||||
NSString *fullPath = [path stringByAppendingPathComponent:prop];
|
NSString *fullPath = [path stringByAppendingPathComponent:prop];
|
||||||
NSData *imgData = [[NSData alloc] initWithContentsOfFile:fullPath];
|
NSData *imgData = [[NSData alloc] initWithContentsOfFile:fullPath];
|
||||||
#if __has_include(<YYWebImage/YYWebImage.h>)
|
UIImage *image = [self imageFromData:imgData];
|
||||||
YYImage *image = [YYImage imageWithData:imgData scale:self.imageScale];
|
view.image = image;
|
||||||
#elif __has_include(<SDWebImage/SDWebImage.h>)
|
if (self.loadCallbackId.length > 0) {
|
||||||
UIImage *image = [SDAnimatedImage imageWithData:imgData scale:self.imageScale];
|
if (image) {
|
||||||
if (!image) {
|
[self callJSResponse:self.loadCallbackId,
|
||||||
image = [UIImage imageWithData:imgData scale:self.imageScale];
|
@{@"width": @(image.size.width), @"height": @(image.size.height)},
|
||||||
|
nil];
|
||||||
|
} else {
|
||||||
|
[self callJSResponse:self.loadCallbackId, nil];
|
||||||
}
|
}
|
||||||
#else
|
}
|
||||||
UIImage *image = [UIImage imageWithData:imgData scale:self.imageScale];
|
} else if ([@"imageFilePath" isEqualToString:name]) {
|
||||||
#endif
|
NSData *imgData = [[NSData alloc] initWithContentsOfFile:prop];
|
||||||
|
UIImage *image = [self imageFromData:imgData];
|
||||||
view.image = image;
|
view.image = image;
|
||||||
if (self.loadCallbackId.length > 0) {
|
if (self.loadCallbackId.length > 0) {
|
||||||
if (image) {
|
if (image) {
|
||||||
@ -404,6 +399,34 @@ - (void)blendView:(UIImageView *)view forPropName:(NSString *)name propValue:(id
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (UIImage *)imageNamed:(NSString *)name {
|
||||||
|
#if __has_include(<YYWebImage/YYWebImage.h>)
|
||||||
|
YYImage *image = [YYImage imageNamed:name];
|
||||||
|
#elif __has_include(<SDWebImage/SDWebImage.h>)
|
||||||
|
UIImage *image = [SDAnimatedImage imageNamed:name];
|
||||||
|
if (!image) {
|
||||||
|
image = [UIImage imageNamed:name];
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UIImage *image = [UIImage imageNamed:prop];
|
||||||
|
#endif
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UIImage *)imageFromData:(NSData *)imgData {
|
||||||
|
#if __has_include(<YYWebImage/YYWebImage.h>)
|
||||||
|
YYImage *image = [YYImage imageWithData:imgData scale:self.imageScale];
|
||||||
|
#elif __has_include(<SDWebImage/SDWebImage.h>)
|
||||||
|
UIImage *image = [SDAnimatedImage imageWithData:imgData scale:self.imageScale];
|
||||||
|
if (!image) {
|
||||||
|
image = [UIImage imageWithData:imgData scale:self.imageScale];
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UIImage *image = [UIImage imageWithData:imgData scale:self.imageScale];
|
||||||
|
#endif
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)afterBlended:(NSDictionary *)props {
|
- (void)afterBlended:(NSDictionary *)props {
|
||||||
if (self.stretchInsetDic != nil) {
|
if (self.stretchInsetDic != nil) {
|
||||||
CGFloat left = [self.stretchInsetDic[@"left"] floatValue];
|
CGFloat left = [self.stretchInsetDic[@"left"] floatValue];
|
||||||
|
@ -2035,6 +2035,10 @@ var Image = /** @class */ (function (_super) {
|
|||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
], Image.prototype, "imageUrl", void 0);
|
], Image.prototype, "imageUrl", void 0);
|
||||||
|
__decorate$9([
|
||||||
|
Property,
|
||||||
|
__metadata$9("design:type", String)
|
||||||
|
], Image.prototype, "imageFilePath", void 0);
|
||||||
__decorate$9([
|
__decorate$9([
|
||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
|
@ -1545,6 +1545,10 @@ __decorate$9([
|
|||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
], Image.prototype, "imageUrl", void 0);
|
], Image.prototype, "imageUrl", void 0);
|
||||||
|
__decorate$9([
|
||||||
|
Property,
|
||||||
|
__metadata$9("design:type", String)
|
||||||
|
], Image.prototype, "imageFilePath", void 0);
|
||||||
__decorate$9([
|
__decorate$9([
|
||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
|
@ -3066,6 +3066,10 @@ __decorate$9([
|
|||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
], Image.prototype, "imageUrl", void 0);
|
], Image.prototype, "imageUrl", void 0);
|
||||||
|
__decorate$9([
|
||||||
|
Property,
|
||||||
|
__metadata$9("design:type", String)
|
||||||
|
], Image.prototype, "imageFilePath", void 0);
|
||||||
__decorate$9([
|
__decorate$9([
|
||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
|
4
doric-js/index.d.ts
vendored
4
doric-js/index.d.ts
vendored
@ -528,6 +528,10 @@ declare module 'doric/lib/src/widget/image' {
|
|||||||
}
|
}
|
||||||
export class Image extends View {
|
export class Image extends View {
|
||||||
imageUrl?: string;
|
imageUrl?: string;
|
||||||
|
/**
|
||||||
|
* Read image from local file system.
|
||||||
|
*/
|
||||||
|
imageFilePath?: string;
|
||||||
/**
|
/**
|
||||||
* Read image from local path
|
* Read image from local path
|
||||||
* For android,it based on assets dir.
|
* For android,it based on assets dir.
|
||||||
|
4
doric-js/lib/src/widget/image.d.ts
vendored
4
doric-js/lib/src/widget/image.d.ts
vendored
@ -7,6 +7,10 @@ export declare enum ScaleType {
|
|||||||
}
|
}
|
||||||
export declare class Image extends View {
|
export declare class Image extends View {
|
||||||
imageUrl?: string;
|
imageUrl?: string;
|
||||||
|
/**
|
||||||
|
* Read image from local file system.
|
||||||
|
*/
|
||||||
|
imageFilePath?: string;
|
||||||
/**
|
/**
|
||||||
* Read image from local path
|
* Read image from local path
|
||||||
* For android,it based on assets dir.
|
* For android,it based on assets dir.
|
||||||
|
@ -37,6 +37,10 @@ __decorate([
|
|||||||
Property,
|
Property,
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
], Image.prototype, "imageUrl", void 0);
|
], Image.prototype, "imageUrl", void 0);
|
||||||
|
__decorate([
|
||||||
|
Property,
|
||||||
|
__metadata("design:type", String)
|
||||||
|
], Image.prototype, "imageFilePath", void 0);
|
||||||
__decorate([
|
__decorate([
|
||||||
Property,
|
Property,
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
|
@ -27,6 +27,11 @@ export class Image extends View {
|
|||||||
@Property
|
@Property
|
||||||
imageUrl?: string
|
imageUrl?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read image from local file system.
|
||||||
|
*/
|
||||||
|
@Property
|
||||||
|
imageFilePath?: string
|
||||||
/**
|
/**
|
||||||
* Read image from local path
|
* Read image from local path
|
||||||
* For android,it based on assets dir.
|
* For android,it based on assets dir.
|
||||||
|
4
doric-web/dist/index.js
vendored
4
doric-web/dist/index.js
vendored
@ -3120,6 +3120,10 @@ __decorate$9([
|
|||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
], Image.prototype, "imageUrl", void 0);
|
], Image.prototype, "imageUrl", void 0);
|
||||||
|
__decorate$9([
|
||||||
|
Property,
|
||||||
|
__metadata$9("design:type", String)
|
||||||
|
], Image.prototype, "imageFilePath", void 0);
|
||||||
__decorate$9([
|
__decorate$9([
|
||||||
Property,
|
Property,
|
||||||
__metadata$9("design:type", String)
|
__metadata$9("design:type", String)
|
||||||
|
2
doric-web/dist/index.js.map
vendored
2
doric-web/dist/index.js.map
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user