开发SDK必备!保存游客登录的账号密码截图到本地。

StringBoot+Vue实现游客或用户未登录系统前、可以浏览商品等信息、但是不能购买商品或者加入购物车等操作。登录系统显示用户的登录名(源码+讲解) 阅读详情

最近一直在开发自己公司的SDK,前段时间把SDK的总体框架搭好了。就进入了实际功能的开发。SDK的第一个功能就是游客登录功能。换一种说法是试玩账号登录。就是由后台给用户分配账号和密码。用户可以跳过注册,和登录的步骤直接进入游戏体验。相信很多游戏都是会有这个功能的。所以我们公司也不例外!

废话少说,直接进入正题。先说说功能实现的需求,很简单。

1.用户点击游客登录时,弹出对话框提示用户:当前是试玩账号,要尽快绑定为正式账号,同时我们会保存试玩账号的截图到本地

2.通过一系列字段去请求后台,获取试玩账号和密码。然后显示到界面上

3.保存截图到本地。

需求就这么多,前面其实都很简单的。就是一些常规操作,接下来我要重点说的是,保存截图到本地。我是怎么实现的。因为我是使用Dialog方式显示的,刚开始使用了

	View dView = ((Activity) HWControl.getInstance().getContext()).getWindow().getDecorView();
		dView.setDrawingCacheEnabled(true);
		dView.buildDrawingCache();
		Bitmap bitmap1 = Bitmap.createBitmap(dView.getDrawingCache());

这种方式进行截图的。但是这就有很大的问题了!因为这个getDecorView只能获取到对应activity的顶层view。而Dialog是悬浮在activity之上的。所以截取出来的图,是没有Dialog的。好了,我想activity不行的,那我直接用Dialog对象对获取截图。于是就有了下面的代码

//如果需要同时保存打开的dialog的截图,可以这么做,如果不需要,上面的bitmap就是当前activity的截图了。
	    View dialogView = LoginTrialDialog.getInstance().getDialog().getWindow().getDecorView();
	    LogUtils.e("dialogView---->"+dialogView);
	    int location2[] = new int[2];
	    dialogView.getLocationOnScreen(location2);
	    dialogView.setDrawingCacheEnabled(true);
	    dialogView.buildDrawingCache();

但是这还是有问题的,就是截出来的图,高度是不对的。这是什么问题,我目前还没有找不出来。因为这个问题,让我浪费了很多时间。换了很多种姿势去截这块图,就是截出来不正常。后来灵机一动,我发现我没必要一直纠结怎么去截图实现这个功能啊。我可以直接通过canvas 去画出来。然后保存为本地图片。这样一来我就不用想怎么去截图了。

我可以通过canvas 拿到相应的资源,去画出来。直接上代码

/**
		 * 我们先画要保存的图
		 */
		Bitmap localBitmap1 = getBitmap(paramContext, "fg_guest_find_uid");//背景图片
		int width = localBitmap1.getWidth();
		int height = localBitmap1.getHeight();
		Bitmap localBitmap2 = Bitmap.createBitmap(width, height,
				Bitmap.Config.ARGB_8888);
		Canvas localCanvas = new Canvas(localBitmap2);//绘制背景
		localCanvas.drawBitmap(localBitmap1, 0.0F, 0.0F, null);
		Paint localPaint = new Paint();//获取画笔
		localPaint.setColor(ResLoader.getColor(paramContext, "fg_find_text"));//设置画笔颜色
		localPaint.setAntiAlias(true);
		localPaint.setFilterBitmap(true);
		localPaint.setTextSize(20);
		localCanvas.drawText(paramString3,
				(width - getFontlength(localPaint, paramString3)) / 2.0F,
				height * 665 / 1920, localPaint);//根据位置 绘制相应的账号密码等
		localCanvas.drawText(paramString1,
				(width - getFontlength(localPaint, paramString1)) / 2.0F,
				height * 980 / 1920, localPaint);
		localCanvas.drawText(paramString2,
				(width - getFontlength(localPaint, paramString2)) / 2.0F,
				height * 1280 / 1920, localPaint);
		localCanvas.save(31);
		localCanvas.restore();

画出图片后,接下来就是保存图片了。

/**
		 * 保存图片到本地
		 */
		String str1 = Constant.GAME_FILE_PATH + paramContext.getPackageName();
		LogUtils.e("保存图片路径名str1----->" + str1);
		String str2 = str1 + File.separator + paramString + ".jpg";
		LogUtils.e("保存图片路径名str2----->" + str2);
		File localFile1 = new File(str1);
		File localFile2 = new File(str2);
		if (!localFile1.exists()) {
			localFile1.mkdirs();
		}
		try {
			if (localFile2.exists()) {
				localFile2.createNewFile();
			}
			LogUtils.e("这里执行了---->"+localFile2.getPath());
			FileOutputStream localFileOutputStream1 = new FileOutputStream(localFile2);
			paramBitmap.compress(Bitmap.CompressFormat.JPEG, 100,
					localFileOutputStream1);
			Intent localIntent = new Intent(
					"android.intent.action.MEDIA_SCANNER_SCAN_FILE");
			localIntent.setData(Uri.fromFile(localFile2));
			paramContext.sendBroadcast(localIntent);
		} catch (FileNotFoundException e) {

			LogUtils.e("fileNotFoudExceptrin---->"+e.toString());
			
		} catch (IOException ex) {
			LogUtils.e("IOException---->"+ex.toString());
		}

最后去看一波手机里面图库,很完美!我要的图,很安详地趟在图库里面了。通过这一个功能我总结了一个经验,有时候我们拿到一个需求的时候,太在乎怎么做,却忘记了为什么做。通往目标的路,都不是只有一条的。这条路走不通,我们就开始选择换条路前进了。

我是一名Android工程师,我为自己加油!

Android之游客登录模式 在我们的程序开发过程中,经常会涉及到登录用户名密码获取数据等操作,在这些过程中,会验证某些条件是否满足,如果不满足就无法继续,但有时候我们需要看到各种初始状态或者一些界面效果,那么该怎么办呢?就是使用游客登录模式。本资源通过一个例子简单介绍了如何开发游客登录模式! 立即下载

相关推荐

ios-使用keyChain持久化存储密码.zip

app卸载重启安装也可以读取数据,可用于简单的做为唯一标识

Android使用SharedPreferences保存账号密码

有很多的应用都会有保存密码和账号的功能,比如QQ。接下来就讲讲使用SharedPreferences来保存密码和账号,也许有些人会考虑的数据库,但是我个人认为对于保存简单的数据,使用的数据库就大材小用了,SharedPreferences比较轻量级 首先写好布局,只有两个输入框和一个按钮

夜雨飘零 4608

手把手教你用Origin拟合真应力-真应变曲线:从数据到加工硬化指数n的完整流程

本文详细解析了如何使用Origin软件拟合真应力-真应变曲线并计算加工硬化指数n的全流程。从数据预处理、曲线绘制到Hollomon方程拟合,逐步指导材料科学研究人员完成实验数据分析,帮助准确评估金属材料的力学性能与强化特性。

view3的博客 716

游客模式android,Android之游客登录模式

在我们的程序开发过程中,经常会涉及到登录用户名密码获取数据等操作,在这些过程中,会验证某些条件是否满足,如果不满足就无法继续,但有时候我们需要看到各种初始状态或者一些界面效果,那么该怎么办呢?就是使用游客登录模式。下面使用一个例子说明如何使用游客登录模式。首先,做一个登录界面activity_main.xmlxmlns:tools="http://schemas.android.com/tools...

weixin_34401781的博客 3679

与rkipc通信

函数名称功能系统模块初始化系统模块反初始化重启恢复出厂设置导出日志导出配置文件导入配置文件系统升级获取用户数设置用户数获取用户权限设置用户权限获取用户名设置用户名获取密码(已加密)设置密码(已加密)新增用户删除用户。

qq_44643189的博客 1612

LLC同步整流实战:从驱动时序到调试仿真,效率提升与避坑指南

同步整流技术是提升开关电源效率的关键手段,尤其在LLC谐振变换器中,通过低导通电阻MOSFET替代二极管可显著降低副边整流损耗。然而,驱动时序、电流过零检测及轻载模式切换是工程实践中的核心难点。从Vds检测原理到死区调节,再到仿真与实测验证,工程师需掌握完整的调试方法论。该技术广泛应用于通信电源、服务器电源及车载DC/DC,合理设计LLC同步整流方案能实现满载效率提升约1.8个百分点,同时优化热分布。本文以600W半桥LLC样机为线索,深入分析工作模态、驱动芯片选型、波形判断与仿真模型搭建,为电源设计提供可

weixin_29165465的博客 299

前端网站使用uuid解决游客登录模式

前端网站使用uuid解决游客登录模式

m0_50298323的博客 1188

基于FFT的阵列方向图快速计算公式推导

因为自己毕设涉及到阵列方向图综合相关知识,最近阅读了关于方向图综合的相关文献,就其中关于使用FFT计算阵列方向图的方法进行了公式推导。 简介: 自从1965年Colley-Tukey发表快速傅里叶变换[1]论文以来,FFT在许多科学技术领域获得了广泛和成功的应用。在阵列信号处理与雷达信号处理领域,随着科技的发展,对于电尺寸较大的相控阵天线,使用公式按照级数求和计算天线阵列方向图的方法效率甚低,...

qq_38151438的博客 4292

Android 游客登录根据机型判断不同用户

用户游客登录是根据获取手机设备码,并进行MD5加密后将字符串传入后台从而判断不同机型的用户,但是同一款手机的设备码相同从而造成同一型号的手机用户登录后是同一个ID 解决方案:使用设备码去区分 public class DeviceCodeUtils { public static String getUniqueDeviceId(boolean isReadCache) { String sbhcm = CacheUtil.readString(CacheUtil.getDev.

Android攻城狮 1868

从零到一:构建嵌入式Nginx的模块化架构与跨平台部署实战

本文详细介绍了在ARM32架构的RV1126嵌入式设备上,通过交叉编译技术构建模块化Nginx服务器的完整实战流程。涵盖环境配置、依赖库编译、Nginx核心与http_ssl_module等模块集成、性能优化及部署调试,为嵌入式开发提供高效可靠的Web服务器解决方案。

rock5的博客 203

博途的HMI(触摸屏)的应用

触摸屏(HMI):用于控制PLC,可认为是小型上位机(用于控制PLC的都可认为是上位机)上位机(PC Station):将触摸屏升级为电脑----工控机(工业控制的机器)用博途编写西门子的触摸屏和上位机。

王阿妹小天才的博客 2678

Android登陆一次后不用再次登陆(超简单)

在写一个小东西的时候碰到需要登陆一次就不用登陆了,想了很多方法,最后用的SharedPreferences。在最开始的时候可以初始化一下。例如:SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();SharedPreferences pref = getSharedPreferences...

zh2393673281的博客 1万+

031、速度前馈与加速度前馈

摘要: 本文通过追剪机调试案例,阐述了速度前馈和加速度前馈在运动控制中的关键作用。前馈不是高级技巧,而是解决动态响应问题的必要手段:速度前馈通过预测速度变化提前补偿,加速度前馈则针对惯量变化提供力矩补偿。实现时需注意信号平滑处理,避免噪声放大。前馈与PID分工明确,前馈承担主要动态响应,PID处理残余误差。调试应先调前馈再微调PID,前馈增益需计算而非仅凭参数调整,并允许适当残余误差。前馈作为开环补偿不会影响系统稳定性,但需配合平滑的指令生成器使用。(149字)

m0_50546716的博客 292

手游SDK-登录

一、登录 1、登录的基本流程:(以账密登录为例) 1)调用X_SDK的登录方法,进行SDK登录操作。即弹出登录框,等待用户输入账号密码。 2) X_SDK与SDK服务器进行通信,向SDK服务器传递对应信息。即把账号密码等信息传给服务器。 3)SDK服务器向X_SDK返回token,token中包含了玩家的验证信息。1、2、3 这三步可以理解为调用X_SDK的登录方法,然后等待服务器回调token。...

yeliang23的博客 4174

NVIDIA A100驱动及CUDA安装指南

NVIDIA A100驱动及CUDA安装指南:详细介绍了在Ubuntu系统下安装A100显卡驱动和CUDA工具包的完整流程,包括环境准备、驱动安装、CUDA配置及性能优化建议。特别推荐猿界算力平台提供开箱即用的A100算力租赁服务,具备专业团队支持、灵活租期和实惠价格等优势。文末通过PyTorch测试验证了A100设备的可用性,展示了80GB显存的强大计算能力。

2401_89353317的博客 1511

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Vue实现登录功能全套详解(含封装axios)

1、第一次登录的时候,前端调后端的登陆接口,发送用户名和密码2、后端收到请求,验证用户名和密码,验证成功,就给前端返回一个token3、前端拿到token,将token存储到localStorage和vuex中,并跳转路由页面4、前端每次跳转路由,就判断 localStroage 中有无 token ,没有就跳转到登录页面,有则跳转到对应路由页面5、每次调后端接口,都要在请求头中加token。

陈新科的博客 3万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

尚硅谷vue前端项目心得4

4.1 加入购物车按钮 发请求+路由跳转(传参)+购买信息也要传到新页面 //index.vue addShopcar(){ //1:在点击加入购物车这个按钮的时候,做的第一件事情,将参数带给服务器(发请求),通知服务器加入购车的产品是谁 this.$store.dispatch('addOrUpdateShopCart',{skuId:this.$route.params.skuid,skuNum:this.skuNum}) //this.$store.dispatch('addO

im_joy的博客 921

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

游戏连接服务器文件在那找,游戏服务器 账号 文件夹在哪

游戏服务器 账号 文件夹在哪 内容精选换一换用户成功安装Agent插件后,推荐您采用“修复插件配置”方式配置Agent。如果“修复插件配置”不成功或其他原因导致无法配置Agent,你可以采用本章节提供的手工方式配置Agent。Windows类型BMS暂不支持安装Agent。目前支持Linux操作系统和Windows操作系统。支持的系统请参见Agent支持的系统有哪些?。已成功安装A实际业务场景下,...

weixin_33622128的博客 851

万象物语找回服务器,万象物语角色没了怎么办 账号存档丢失怎么找回

万象物语许多玩家登录之后发现角色账号都没有了,怎么才能够找回呢?许多玩家再次体验游戏的时候却发现自己的账号信息都没有了,这到底是怎么回事呢?本次小编则为大家带来这方面的解答,感兴趣的玩家不妨一看吧!账号存档丢失找回方法?一般出现账号丢失都是因为玩家使用的是游客模式,游客模式在手机清理数据的时候就会导致存档丢失,或者重新安装游戏包的时候非常容易丢失,所以建议大家注册一个龙源账号来登录游戏,这样的话就...

weixin_32028965的博客 2019

关于游客账户创建的问题

游客账户的创建需要与设备进行绑定,这样才不会再更新或者玩家误删文件时导致的信息丢失

Hello Mingo 7306

游戏游客登录与账号登录

登录流程这一块,之前做功能没有接触到这一块,最近做登录踩了几个坑,下面来梳理一下: 我们这款app,之前是h5版的,在线上运营了大概一年,效果还比较好,但是h5版本的没有服务器,数据是采用云函数存储在云服务器的,当前看数据可以,打算快速的出一个app版本,先上台湾市场,看看效果,于是就接入了服务器,大部分的逻辑还是在前端,大约花了1-2个月左右接入完成,2020年11月份左右推出了app台版的,留存也比较好,次留大约有60%-70%,前后端各一个开发人员,之后又搭了一台h5端的服务器,把云函数数据库数据迁

qq_15092991的博客 6006

uniapp 游客模式下的数据封装

简历游客模式的数据: 全局接口封装: 调用没区别,还是本来的调法,不用任何改动,如图:

全易 812

iOS 记住密码\自动登录

定义了宏 #define AccountKey @"account" #define PwdKey @"pwd" #define RmbPwdKey @"rmb_pwd" #define AutoLoginKey @"auto_login" - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup

4068

教你快速高效接入SDK——手游聚合SDK的总体思路和架构

题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360......据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道。每个渠道SDK接入的方法呢,多是大同小异。但是,正是这些小异,又让SDK的接入,产生了无穷无尽的变数。所以,接入SDK之前,如果你没有经验,或者没有被SDK坑过,那么当你看到这系列文章的时候,你很幸运,你可以避免这一切了。如果你

7万+
上一篇: 使用apktool反编译apk的资源文件与manifest文件报:Error: Unable to access jarfile XXXXX
下一篇: 解决:使用eclipse导出的jar,报控件找不到id,或者直接报控件空指针异常
阮小鬼
博客等级 码龄12年 74粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阮小鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值