Tips——RN canvas缩放处理

一、关于canvas缩放

canvas图像缩放处理有两种思路:

  • ctx.scale(),对整个canvas进行重绘,会导致每次缩放都重新加载,影响体验效果
  • 在canvas外包层view,直接对外层的view进行缩放

二、view触摸事件

view组件借助RN自带的手势响应系统,已经有完善的触摸事件处理体系。

RN触摸事件处理详解:https://www.race604.com/react-native-touch-event/

其中,PanResponder是一个封装好的用于处理多点触摸交互的手势系统。

基本用法:https://reactnative.cn/docs/panresponder/#docsNav

三、关于缩放

A pure JavaScript RN component that makes ANY views transformable using gestures like pinch, double tap or pull.:react-native-view-transformer(https://github.com/ldn0x7dc/react-native-view-transformer

用轮子封装自定义组件即可:

Usage

import ViewTransformer from ‘react-native-view-transformer‘;
...
render() {
  return (
      <ViewTransformer>
      //ANY views
    </ViewTransformer>
  );
}

一个及其有效的学习方式:研究别人轮子的实现方式,既有助于深入理解RN,同时还能激发想象力。

血的教训:

当你搜索“RN 手势识别”、“panresponder 缩放”等等,发现超过1个小时还没有解决问题,那么请直接搜索“RN gesture recognition”、“panresponder zoom”,会有意想不到的收获。

原文地址:https://www.cnblogs.com/bbcfive/p/10717670.html

时间: 2024-10-12 11:46:12

Tips——RN canvas缩放处理的相关文章

html5 canvas缩放变换

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Review——RN视图缩放框架react-native-view-transformer解析

URI与URL的区别:“URI和URL都定义了what the resource is:URL还定义了how to get the resource”——RIO react-native-view-transformer解析 一.组成 结构: ->library ->transform ->Rect.js ->TransformUtils.js ->ViewTransformer.js ->index.js ->.npmignore ->package.js

Canvas缩放图像

<body> <canvas id="canvas"></canvas> <input type="range" id="scale_range" min="0.5" max="3" step="0.01" value="1.0"> <script> slider = document.getElementB

Canvas 缩放图形

从<HTML5+CSS3从入门到精通> P125 copy的 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <script> function draw() { var ctx = document.getElementById('myCanvas'

RN animated缩放动画

效果图: 代码: import React, {Component} from 'react'; import { AppRegistry, StyleSheet, Text, Animated, TouchableOpacity, View } from 'react-native'; export default class AnimationSpringScene extends Component { constructor(props) { super(props); this.spr

canvas基础知识

低版本的ie不支持html5,需要引入excanvas.js来让ie支持canvas.检测<canvas id="canvas" width="150" height="200" > 你的浏览器不支持canvas</canvas>var canvas = document.getElementById('canvas');if(canvas.getContext) alert('支持canvas'); >> 绘

Android自定义View【实战教程】5??---Canvas详解及代码绘制安卓机器人

友情链接: Canvas API Android自定义View[实战教程]3??--Paint类.Path类以及PathEffect类详解 神马是Canvas 基本概念 Canvas:可以理解为是一个为我们提供了各种工具的画布,我们可以在上面尽情的绘制(旋转,平移,缩放等等).可以理解为系统分配给我们一个一个内存空间,然后提供了一些对这个内存空间操作的方法(API), 实际存储是在下面的bitmap. 两种画布 这里canvas可以绘制两种类型的画图,分别是view和surfaceView. V

转载爱哥自定义View系列--Canvas详解

上面所罗列出来的各种drawXXX方法就是Canvas中定义好的能画什么的方法(drawPaint除外),除了各种基本型比如矩形圆形椭圆直曲线外Canvas也能直接让我们绘制各种图片以及颜色等等,但是Canvas真正屌的我觉得不是它能画些什么,而是对画布的各种活用,上一节最后的一个例子大家已经粗略见识了变换Canvas配合save和restore方法给我们绘制图形带来的极大便利,事实上Canvas的活用远不止此,在讲Canvas之前,我想先给大家说说Canvas中非常屌毛而且很有个性的一个方法:

canvas+howler.js 解决同页面视频、音频同时播放问题

一直感觉canvas很神奇很有趣,趁最近项目少,拿前端之前做的一个静态项目试了下水深,个中的经验和体会记录如下.1一.横竖屏转换1.canvas样式#canvas { width: 100%; height: 100%; top: 0; left: 0; display: block;}1234567把canvas缩放定位到屏幕内,以宽高中较小的一边为准.12.横竖屏处理function config() { winHeight = window.innerHeight; winWidth =