【移动应用开发技术】怎么在Android应用中实现一个背景可滑动的登录界面效果_第1页
【移动应用开发技术】怎么在Android应用中实现一个背景可滑动的登录界面效果_第2页
【移动应用开发技术】怎么在Android应用中实现一个背景可滑动的登录界面效果_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】怎么在Android应用中实现一个背景可滑动的登录界面效果

怎么在Android应用中实现一个背景可滑动的登录界面效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面在下将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现思路主要列举一下实现过程过程中遇到的难点。如何使键盘弹出时候不遮挡底部登录布局;当键盘弹出的时候如何不压缩背景图片或者背景延伸至「屏幕以外」;从「windowSoftInputMode」说起相信大家都清楚,Google官方提供给开发者控制软键盘显示隐藏的方法不多,「windowSoftInputMode」算是我们可控制的软键盘弹出模式的方法之一。关于其属性的说明Google官方和网上的教程说了很多,他的属性值由两部分组成,形如「stateHidden|adjustResize」的格式,其前半部分(事实上也可写在后边)表示所设置的Activity进入时软键盘的状态,后半部分表示软键盘弹出的时候页面是如何调整的。下边分别列出几个可选属性及其含义:通过上述列表我们可以了解到windowSoftInputMode的几个属性值的含义。我们可以根据具体的需求来选择合适属性。However!产品需求永远比属性来的奇葩。比如说我们想要实现的的这个效果:软键盘弹出不遮挡全部的输入布局,并不是单纯的留出一个输入框控件软键盘被弹起的时候背景不能被压缩,或者向上滑动首先看第一个需求:我们可以使用adjustResize属性来达到效果,可以看到这样图片已经被自动向上移动了,ok,如果效果您还算满意,那我就没什么好说的了,但是我们老板和产品以及UI说这样不好,背景不能压缩也就是我们说的第二个需求。当时我心中就有一种mmp想对他们说。但是呢作为一个敢于挑战的Android程序员来说这个小小的需求并不算什么。对于第二个需求,首先我们要了解为什么图片会被上滑,是因为我们配置了adjustResize属性,系统自动根据键盘所需要的空间向上移动整个页面的布局,并调整页面布局的大小以满足不被软键盘隐藏的效果。举个栗子:手机屏幕的高为1920px,那么整个Activity的布局高度也为1920px。当设置该属性后点击界面中的EditText,此时弹出软键盘其高度为800px。为了完整地显示此软键盘,系统会调整Activity布局的高度为1920px-800px=1120px。注意这里说了会调整布局的大小,根据以往的经验,系统自动调节的布局都不是我们想要的结果,比如各种可滑动View嵌套的问题。那么这个需求能否依据这个思路来结局呢?当windowSoftInputMode被设置为adjustResize时候,当布局调整的时候被调整的布局均会重绘制,并走了onMeasure,onSizeChanged,onLayout。当windowSoftInputMode被设置为adjustPan时候,当布局调整的时候被调整的布局均会重绘制,并走了onMeasure,onLayout。这里只需要注意两者都走了onMeasure方法,至于adjustPan没走onSizeChanged,我们会在之后关于软键盘弹出的监控的文章中详细说明。那么我们就利用其走了onMeasure方法,来「阻止」系统自动调整的布局大小。由于我们背景用了ViewPager,所以我们需要重写ViewPager的OnMeasure方法。DensityUtil.getHeight方法是获取屏幕高度的方法。经过这样的设置我们就讲背景ViewPager的高度写死为屏幕的高度。这样当键盘弹出的时候ViewPager的大小就会变了。经过测试我们这个方法就就可以组织背景向上移动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论