YH_Image.js 1.36 KB
import React from 'react';
import ReactNative from 'react-native';

const {
    Component,
} = React;

const {
    Image,
    PixelRatio,
} = ReactNative;

const YH_ImageView = ReactNative.requireNativeComponent('YH_ImageView', null);


/**
 *  原生图片
 *      圆角设置规则:
 *          ios写法:      masksToBounds={true} style中设置borderRadius圆角值
 *          android写法:  radius={{'topLeft':'20','topRight':'20','bottomRight':'20','bottomLeft':'20'}}
 *
 *
 **/
export default class YH_Image extends Component {

    constructor(props) {
        super (props);
	}

    static getSlicedUrl(src, width, height, mode = 1) {
        if (!src) {
            return '';
        }

        width = PixelRatio.getPixelSizeForLayoutSize(width);
        height = PixelRatio.getPixelSizeForLayoutSize(height);
        let newSrc = src;
        if (src.indexOf('imageView') === -1 && src.indexOf('imageMogr') === -1) {
            newSrc = src + '?imageView2/' + mode + '/w/' + width + '/h/' + height;
        } else {
            newSrc = src.replace('{mode}', mode)
                .replace(/{width}/g, width)
                .replace(/{height}/g, height);
        }

        // __DEV__ && console.log(newSrc);

        return newSrc;
    }

    render() {
        return (
            <YH_ImageView
                {...this.props}
            />
        );
    }
}