IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> #uni-app# u-avatar-cropper实现选择图片裁剪,设置用户头像uview (附源码) -> 正文阅读

[游戏开发]#uni-app# u-avatar-cropper实现选择图片裁剪,设置用户头像uview (附源码)

思路:

第一步:首先需要在项目里安装uView框架

》》》点击跳转uview安装教程https://blog.csdn.net/ZHENGCHUNJUN/article/details/119913012?spm=1001.2014.3001.5501icon-default.png?t=L9C2https://blog.csdn.net/ZHENGCHUNJUN/article/details/119913012?spm=1001.2014.3001.5501

第二步:在page.josn里面,引入u-avatar-cropper的路径

{
	"path": "uview-ui/components/u-avatar-cropper/u-avatar-cropper",
	"style": {
				"navigationBarTitleText": "头像裁剪",
				"navigationBarBackgroundColor": "#000000"
			}
}

第三步:排版

里面会用到唤起菜单的插件u-action-sheet (注意要放在版块外面,以免排版错乱)

》》》点击跳转到actionSheet参数

<template>
	<view>
		<view class="personal">
			<view class="title">头像</view>
			<view class="name">
				<view class="item">
					<image :src="imgsrc"></image>
				</view>
				<u-icon name="arrow-right" color="#666666" class="right-icon"></u-icon>
			</view>
		</view>
		<u-action-sheet :list="headlist" v-model="show"></u-action-sheet>
	</view>
</template>

第四步:设置点击事件,唤起操作菜单

<template>
	<view>
		<view class="personal" @click="show = true"> //触发点击事件以后,操作菜单为激活状态
			<view class="title">头像</view>
			<view class="name">
				<view class="item">
					<image :src="imgsrc"></image>
				</view>
				<u-icon name="arrow-right" color="#666666" class="right-icon"></u-icon>
			</view>
		</view>
		<u-action-sheet :list="headlist" v-model="show" @click="toCut()"></u-action-sheet>
	</view>
</template>
export default {
		data() {
			return {
				imgsrc: '/static/1.jpg',
				show: false, //操作菜单为隐藏状态
				headlist: [{ //操作菜单的参数设置
					text: '选择图片',
					color: '#666666',
					fontSize: 35
				}, ],
			}
		},
		
		}
	}
</script>

第五步:在操作菜单这个组件里,设置点击事件,进行裁剪

<template>
	<view>
	
		<u-action-sheet :list="headlist" v-model="show" @click="toCut()"></u-action-sheet>
	</view>
</template>


methods: {
			toCut() { //触发点击事件以后,跳转到裁剪头像的页面
				this.$u.route({
					url: '/uview-ui/components/u-avatar-cropper/u-avatar-cropper',
					// 内部已设置以下默认参数值,可不传这些参数
					params: {
						// 输出图片宽度,高等于宽,单位px
						destWidth: 300,
						// 裁剪框宽度,高等于宽,单位px
						rectWidth: 300,
						// 输出的图片类型,如果'png'类型发现裁剪的图片太大,改成"jpg"即可
						fileType: 'jpg',
					}
				})
			}
		}

第六步:进行监听图片裁剪结果,以及传递到服务器

	created() {
			// 监听从裁剪页发布的事件,获得裁剪结果
			uni.$on('uAvatarCropper', path => {
				this.imgsrc = path;
				// 可以在此上传到服务端
				uni.uploadFile({
					url: '', //后期自己接后端接口
					filePath: path,
					name: 'file',
					complete: (res) => {
						console.log(res);
					}
				});
			})
		},

源码展示:

<template>
	<view>
		<view class="personal" @click="show = true">
			<view class="title">头像</view>
			<view class="name">
				<view class="item">
					<image :src="imgsrc"></image>
				</view>
				<u-icon name="arrow-right" color="#666666" class="right-icon"></u-icon>
			</view>
		</view>
		<u-action-sheet :list="headlist" v-model="show" @click="toCut()"></u-action-sheet>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				imgsrc: '/static/1.jpg',
				show: false,
				headlist: [{
					text: '选择图片',
					color: '#666666',
					fontSize: 35
				}, ],
			}
		},
		created() {
			// 监听从裁剪页发布的事件,获得裁剪结果
			uni.$on('uAvatarCropper', path => {
				this.imgsrc = path;
				// 可以在此上传到服务端
				uni.uploadFile({
					url: '',
					filePath: path,
					name: 'file',
					complete: (res) => {
						console.log(res);
					}
				});
			})
		},
		methods: {
			toCut() {
				this.$u.route({
					url: '/uview-ui/components/u-avatar-cropper/u-avatar-cropper',
					// 内部已设置以下默认参数值,可不传这些参数
					params: {
						// 输出图片宽度,高等于宽,单位px
						destWidth: 300,
						// 裁剪框宽度,高等于宽,单位px
						rectWidth: 300,
						// 输出的图片类型,如果'png'类型发现裁剪的图片太大,改成"jpg"即可
						fileType: 'jpg',
					}
				})
			}
		}
	}
</script>
<style lang="scss">
	.personal {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 90%;
		margin: 50upx auto 35upx;
		.title {
			font-size: 30upx;
			color: #333333;
		}
		.name {
			display: flex;
			align-items: center;
			.item {
				height: 52upx;
				font-size: 22upx;
				color: #666666;
				display: flex;
				align-items: center;
				image {
					width: 70upx;
					height: 70upx;
					border-radius: 50%;
				}
			}
			.right-icon {
				padding-left: 15upx;
			}
		}
	}
</style>

效果展示:

?

?

?

?

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 12:05:56  更:2021-10-15 12:06:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:45:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码