React Native 之 View 组件的变形
2017-03-27 15:25
369 查看
在React Native 开发中,开发者可以利用transfor 样式键 设置 实现组件的变形,从而实现文字或图像的变形。变形包括:translate(平移)、scale(缩放)、rotate(旋转)、skew(倾斜)四种类型。
/**
* Sample React Native App
* https://github.com/facebook/react-native * @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
export default class ViewProject extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome0}>
Welcome to React Native!
</Text>
<Text style={styles.welcome1}>
Welcome to React Native!
</Text>
<Text style={styles.welcome2}>
Welcome to React Native!
</Text>
<Text style={styles.welcome3}>
Welcome to React Native!
</Text>
<Text style={styles.welcome4}>
Welcome to React Native!
</Text>
<Text style={styles.welcome5}>
Welcome to React Native!
</Text>
<Text style={styles.welcome6}>
Welcome to React Native!
</Text>
<Text style={styles.welcome7}>
Welcome to React Native!
</Text>
<Text style={styles.welcome8}>
Welcome to React Native!
</Text>
<Text style={styles.welcome9}>
Welcome to React Native!
</Text>
<Text style={styles.welcome10}>
Welcome to React Native!
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent:"center",
alignItems:"center",
backgroundColor:"#F5FCFF",
},
welcome0:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"green",
transform:[{rotate:'45deg'}] //不指定轴旋转
},
welcome1:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"yellow",
transform:[{rotateX:'45deg'}] //指定X轴旋转
},
welcome2:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"red",
transform:[{rotateY:'45deg'}] //指定Y轴旋转
},
welcome3:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"plum",
transform:[{rotateZ:'45deg'}] //指定Z轴旋转
},
welcome4:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"blue",
transform:[{scale:2}] //X Y 轴都放大
},
welcome5:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"hotpink",
transform:[{scaleX:2}] //X 轴放大
},
welcome6:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"deepskyblue",
transform:[{scaleY:2}] //Y 轴放大
},
welcome7:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"thistle",
transform:[{translateX:200}]//X 轴平移
},
welcome8:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"darkblue",
transform:[{translateY:150}]//Y 轴平移
},
welcome9:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"darkcyan",
transform:[{skewX:'45deg'}] // X 轴倾斜
},
welcome10:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"lightgreen",
transform:[{skewY:'45deg'}]// Y 轴倾斜
}
});
AppRegistry.registerComponent('ViewProject', () => ViewProject);
在开发中,可以多种变形效果叠加:
transform:[{scale:2},{skewY:'45deg'}] // X Y 轴都放大 且Y轴倾斜
旋转与倾斜的区别:rotate控制目标整体旋转,与目标内部形状无关,目标内部不发生任何形变,而skew目标内部的形状会倾斜而改变。
/**
* Sample React Native App
* https://github.com/facebook/react-native * @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
export default class ViewProject extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome0}>
Welcome to React Native!
</Text>
<Text style={styles.welcome1}>
Welcome to React Native!
</Text>
<Text style={styles.welcome2}>
Welcome to React Native!
</Text>
<Text style={styles.welcome3}>
Welcome to React Native!
</Text>
<Text style={styles.welcome4}>
Welcome to React Native!
</Text>
<Text style={styles.welcome5}>
Welcome to React Native!
</Text>
<Text style={styles.welcome6}>
Welcome to React Native!
</Text>
<Text style={styles.welcome7}>
Welcome to React Native!
</Text>
<Text style={styles.welcome8}>
Welcome to React Native!
</Text>
<Text style={styles.welcome9}>
Welcome to React Native!
</Text>
<Text style={styles.welcome10}>
Welcome to React Native!
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent:"center",
alignItems:"center",
backgroundColor:"#F5FCFF",
},
welcome0:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"green",
transform:[{rotate:'45deg'}] //不指定轴旋转
},
welcome1:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"yellow",
transform:[{rotateX:'45deg'}] //指定X轴旋转
},
welcome2:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"red",
transform:[{rotateY:'45deg'}] //指定Y轴旋转
},
welcome3:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"plum",
transform:[{rotateZ:'45deg'}] //指定Z轴旋转
},
welcome4:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"blue",
transform:[{scale:2}] //X Y 轴都放大
},
welcome5:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"hotpink",
transform:[{scaleX:2}] //X 轴放大
},
welcome6:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"deepskyblue",
transform:[{scaleY:2}] //Y 轴放大
},
welcome7:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"thistle",
transform:[{translateX:200}]//X 轴平移
},
welcome8:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"darkblue",
transform:[{translateY:150}]//Y 轴平移
},
welcome9:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"darkcyan",
transform:[{skewX:'45deg'}] // X 轴倾斜
},
welcome10:{
flex:1,
justifyContent:"center",
alignItems:"center",
color:"lightgreen",
transform:[{skewY:'45deg'}]// Y 轴倾斜
}
});
AppRegistry.registerComponent('ViewProject', () => ViewProject);
在开发中,可以多种变形效果叠加:
transform:[{scale:2},{skewY:'45deg'}] // X Y 轴都放大 且Y轴倾斜
旋转与倾斜的区别:rotate控制目标整体旋转,与目标内部形状无关,目标内部不发生任何形变,而skew目标内部的形状会倾斜而改变。
相关文章推荐
- React Native WebView组件实现的BarCode(条形码)、(QRCode)二维码
- React Native控件之PullToRefreshViewAndroid下拉刷新组件讲解(20)
- 如何在 React Native 实现类微信小程序平台:WebView 调用原生组件
- react native 中View组件中的ref属性是什么
- React Native 之View组件的回调
- React Native 学习笔记(八)-- ScrollView & ListView组件
- React Native之Touchable四组件
- 解决SurfaceView设置透明造成覆盖其他组件的替代方案
- ViewFlipper 视图切换组件 ViewAnimator
- 【Android游戏开发之七】(游戏开发中需要的样式)再次剖析游戏开发中对SurfaceView中添加组件方案!
- 自定义 React Native 二维码扫描组件(简单,易用!)
- Android开发之WebView组件的使用详解
- ViewPager,子页面组件绑定OnClick事件,使用DepthPageTransformer动画,事件失效、混乱
- android 高级组件之 AutoCompleteTextView
- 自定义组件的简单使用—View
- Android自定义组件系列【3】自定义ViewGroup实现侧滑
- react native导入组件出错Module is not listed in package.json dependencies less
- 【Cocos2d游戏开发之十六】添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)! 推荐
- Android-RecyclerView组件中setLayoutManager方法的使用,使RecyclerView更有趣-刘宇
- android 在XML向ViewGroup中添加组件