android: add BlurEffectView

This commit is contained in:
pengfei.zhou
2021-11-24 14:37:48 +08:00
committed by osborn
parent 040823a8af
commit d24e0ecff6
18 changed files with 2280 additions and 1768 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

24
doric-js/index.d.ts vendored
View File

@@ -96,6 +96,7 @@ declare module 'doric/lib/src/widget/index.widget' {
export * from 'doric/lib/src/widget/draggable';
export * from 'doric/lib/src/widget/switch';
export * from 'doric/lib/src/widget/gesture';
export * from 'doric/lib/src/widget/effect';
}
declare module 'doric/lib/src/native/index.native' {
@@ -1088,6 +1089,29 @@ declare module 'doric/lib/src/widget/gesture' {
export function gestureContainer(views: View | View[], config?: Partial<GestureContainer>): GestureContainer;
}
declare module 'doric/lib/src/widget/effect' {
import { Stack } from "doric/lib/src/widget/layouts";
import { View } from "doric/lib/src/ui/view";
export class BlurEffect extends Stack {
/**
* Specify the effective rectangle.
* If not set, the default is the entire area.
*/
effectiveRect?: {
x: number;
y: number;
width: number;
height: number;
};
/**
* Specify the radius of blur effect.
* If not set, the default is 15.
*/
radius?: number;
}
export function blurEffect(views: View | View[], config?: Partial<BlurEffect>): BlurEffect;
}
declare module 'doric/lib/src/native/modal' {
import { BridgeContext } from "doric/lib/src/runtime/global";
import { Gravity } from "doric/lib/src/util/gravity";

20
doric-js/lib/src/widget/effect.d.ts vendored Normal file
View File

@@ -0,0 +1,20 @@
import { Stack } from "../widget/layouts";
import { View } from "../ui/view";
export declare class BlurEffect extends Stack {
/**
* Specify the effective rectangle.
* If not set, the default is the entire area.
*/
effectiveRect?: {
x: number;
y: number;
width: number;
height: number;
};
/**
* Specify the radius of blur effect.
* If not set, the default is 15.
*/
radius?: number;
}
export declare function blurEffect(views: View | View[], config?: Partial<BlurEffect>): BlurEffect;

View File

@@ -0,0 +1,53 @@
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/*
* Copyright [2021] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Stack } from "../widget/layouts";
import { Property, View } from "../ui/view";
import { layoutConfig } from "../util/layoutconfig";
export class BlurEffect extends Stack {
}
__decorate([
Property,
__metadata("design:type", Object)
], BlurEffect.prototype, "effectiveRect", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], BlurEffect.prototype, "radius", void 0);
export function blurEffect(views, config) {
const ret = new BlurEffect;
ret.layoutConfig = layoutConfig().fit();
if (views instanceof View) {
ret.addChild(views);
}
else {
views.forEach(e => {
ret.addChild(e);
});
}
if (config) {
ret.apply(config);
}
return ret;
}

View File

@@ -11,3 +11,4 @@ export * from './nestedSlider';
export * from './draggable';
export * from './switch';
export * from './gesture';
export * from './effect';

View File

@@ -26,3 +26,4 @@ export * from './nestedSlider';
export * from './draggable';
export * from './switch';
export * from './gesture';
export * from './effect';

View File

@@ -0,0 +1,55 @@
/*
* Copyright [2021] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Stack } from "../widget/layouts"
import { Property, View } from "../ui/view"
import { layoutConfig } from "../util/layoutconfig"
export class BlurEffect extends Stack {
/**
* Specify the effective rectangle.
* If not set, the default is the entire area.
*/
@Property
effectiveRect?: {
x: number,
y: number,
width: number,
height: number,
}
/**
* Specify the radius of blur effect.
* If not set, the default value is 15.
* Suggested value is from 1 to 25.
*/
@Property
radius?: number
}
export function blurEffect(views: View | View[], config?: Partial<BlurEffect>) {
const ret = new BlurEffect
ret.layoutConfig = layoutConfig().fit()
if (views instanceof View) {
ret.addChild(views)
} else {
views.forEach(e => {
ret.addChild(e)
})
}
if (config) {
ret.apply(config)
}
return ret
}

View File

@@ -25,4 +25,5 @@ export * from './input'
export * from './nestedSlider'
export * from './draggable'
export * from './switch'
export * from './gesture'
export * from './gesture'
export * from './effect'