zoukankan      html  css  js  c++  java
  • [RN] React Native 实现图片预览

    [RN] React Native 实现图片预览

    效果预览:

    代码如下:

    'use strict';
    import React, {Component} from 'react';
    import {Image, StyleSheet, Text, View, ViewPagerAndroid, Dimensions} from 'react-native';
    
    const {width, height} = Dimensions.get("window");
    
    //图片地址
    const PAGE_IMAGES = [
        'http://a.hiphotos.baidu.com/image/h%3D300/sign=4f5477ac8f26cffc762ab9b289014a7d/b3fb43166d224f4ad8b5722604f790529822d1d3.jpg',
        'http://a.hiphotos.baidu.com/image/h%3D300/sign=10b374237f0e0cf3bff748fb3a47f23d/adaf2edda3cc7cd90df1ede83401213fb80e9127.jpg',
        'http://e.hiphotos.baidu.com/image/h%3D300/sign=8562b2c234dbb6fd3a5be3263925aba6/8ad4b31c8701a18b536e1476932f07082838fe06.jpg',
        'http://a.hiphotos.baidu.com/image/h%3D300/sign=fbe3d9666ed9f2d33f1122ef99ed8a53/3bf33a87e950352a464bc38f5f43fbf2b2118b0b.jpg'
    ];
    
    export default class TestViewPager extends Component {
    
        constructor(props) {
            super(props);
            this.state = {
                page: 0,
                totalPage: PAGE_IMAGES.length,
            }
        }
    
        onPageSelected = (event) => {
            this.setState({
                page: event.nativeEvent.position,
            });
        };
    
        render() {
            let pages = [];
            let len = this.state.totalPage;
            for (let i = 0; i < len; i++) {
                pages.push(
                    <View key={i} collapsable={false}>
                        <Image
                            style={styles.image}
                            source={{uri: PAGE_IMAGES[i]}}
                        />
                    </View>
                );
            }
    
            return (
                <View style={styles.container}>
                    <ViewPagerAndroid
                        style={styles.viewPager}
                        initialPage={0}
                        onPageSelected={this.onPageSelected}
                        ref={viewPager => {
                            this.viewPager = viewPager;
                        }}
                    >
                        {pages}
                    </ViewPagerAndroid>
    
                    <View style={styles.showArea}>
                        <Text style={styles.showText}>{this.state.page + 1} / {this.state.totalPage}</Text>
                    </View>
                </View>
            );
        }
    }
    
    
    const styles = StyleSheet.create({
        container: {
            flex: 1,
            backgroundColor: 'black',
        },
        viewPager: {
             width,
            height: height
        },
        image: {
            resizeMode: "contain",
            flex: 1,
             width
        },
        showArea: {
            position: "absolute",
            bottom: 60,
            flexDirection: 'row',
             width,
            height: 60,
            justifyContent: "center",
            alignItems: 'center',
        },
        showText: {
            fontSize: 20,
            color: "white"
        }
    });

    本博客地址: wukong1688

    本文原文地址:https://www.cnblogs.com/wukong1688/p/11002911.html

    转载请著名出处!谢谢~~

  • 相关阅读:
    Tag文件使用
    微信开发 select选择框
    useGeneratedKeys的用法
    IBM MQ8.0常用操作
    C++对象在继承情况下的内存布局---多态实现的原理
    C++中的赋值操作符重载和拷贝构造函数
    C++中多态的概念和意义
    C 链表冒泡排序
    js 倒计时(可自定义时间)
    如何分析解决Android ANR
  • 原文地址:https://www.cnblogs.com/wukong1688/p/11002911.html
Copyright © 2011-2022 走看看