iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在Android应用中实现一个背景可滑动的登录界面效果
  • 448
分享到

怎么在Android应用中实现一个背景可滑动的登录界面效果

androidroi 2023-05-31 04:05:33 448人浏览 八月长安
摘要

怎么在Android应用中实现一个背景可滑动的登录界面效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现思路主要列举一下实现过程过程中遇到的难点。如何使键盘

怎么在Android应用中实现一个背景可滑动的登录界面效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

实现思路

主要列举一下实现过程过程中遇到的难点。

如何使键盘弹出时候不遮挡底部登录布局;

当键盘弹出的时候如何不压缩背景图片或者背景延伸至「屏幕以外」;

从 「 windowsoftInputMode 」 说起

相信大家都清楚,Google 官方提供给开发者控制软键盘显示隐藏的方法不多,「windowSoftInputMode」算是我们可控制的软键盘弹出模式的方法之一。关于其属性的说明Google 官方和网上的教程说了很多,他的属性值由两部分组成,形如「 stateHidden|adjustResize 」的格式,其前半部分(事实上也可写在后边)表示所设置的 Activity 进入时软键盘的状态,后半部分表示软键盘弹出的时候页面是如何调整的。

下边分别列出几个可选属性及其含义:

通过上述列表我们可以了解到 windowSoftInputMode 的几个属性值的含义。我们可以根据具体的需求来选择合适属性。However ! 产品需求永远比属性来的奇葩。比如说我们想要实现的的这个效果:

软键盘弹出不遮挡全部的输入布局,并不是单纯的留出一个输入框控件

软键盘被弹起的时候背景不能被压缩,或者向上滑动

首先看第一个需求:我们可以使用 adjustResize 属性来达到效果,可以看到这样图片已经被自动向上移动了,ok,如果效果您还算满意,那我就没什么好说的了,但是我们老板和产品以及 UI 说这样不好,背景不能压缩也就是我们说的第二个需求。当时我心中就有一种 mmp 想对他们说。但是呢作为一个敢于挑战的 Android 程序员来说这个小小的需求并不算什么。

怎么在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 方法。

public class AutoViewPager extends ViewPager { private int mScreenHeight; public AutoViewPager(Context context) {  this(context,null); } public AutoViewPager(Context context, AttributeSet attrs) {  super(context, attrs);  mScreenHeight = DensityUtil.getHeight(getContext()); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  heightMeasureSpec = MeasureSpec.makeMeasureSpec(mScreenHeight, MeasureSpec.EXACTLY);  super.onMeasure(widthMeasureSpec, heightMeasureSpec); }}

--结束END--

本文标题: 怎么在Android应用中实现一个背景可滑动的登录界面效果

本文链接: https://www.lsjlt.com/news/223598.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Android应用中实现一个背景可滑动的登录界面效果
    怎么在Android应用中实现一个背景可滑动的登录界面效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现思路主要列举一下实现过程过程中遇到的难点。如何使键盘...
    99+
    2023-05-31
    android roi
  • 怎么在Android中使用Kotlin实现一个登录界面
    怎么在Android中使用Kotlin实现一个登录界面?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。登录界面代码如下:class LoginActiv...
    99+
    2023-05-30
    android kotlin
  • 怎么在android应用中利用ViewPager实现一个滑动翻页效果
    这期内容当中小编将会给大家带来有关怎么在android应用中利用ViewPager实现一个滑动翻页效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现ViewPager的滑动翻页效果可以使用ViewPa...
    99+
    2023-05-31
    viewpager android age
  • 怎么Android应用中实现一个APP显示界面滑动优化
    这篇文章将为大家详细讲解有关怎么Android应用中实现一个APP显示界面滑动优化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、界面布局<xml version=&quo...
    99+
    2023-05-31
    android pp roi
  • 怎么在Android应用中实现一个动画效果
    本篇文章给大家分享的是有关怎么在Android应用中实现一个动画效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Android 三种动画详解帧动画一张张图片不断的切换,形成动...
    99+
    2023-05-31
    android roi
  • 怎么在Android中利用ViewPager实现一个屏幕滑动效果
    本篇文章给大家分享的是有关怎么在Android中利用ViewPager实现一个屏幕滑动效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。创建View创建一个在之后作为fragm...
    99+
    2023-05-30
    viewpager android
  • 怎么在android中使用View实现一个滑动删除效果
    这篇文章给大家介绍怎么在android中使用View实现一个滑动删除效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实现功能可以向左滑动,右侧出现删除2、向左滑动如果删除出现一大半,松手打开删除,反之关闭删除3、应用...
    99+
    2023-05-31
    android view roi
  • 怎么在Android中使用SeekBar实现一个平滑滚动效果
    这篇文章将为大家详细讲解有关怎么在Android中使用SeekBar实现一个平滑滚动效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。把max改为100,progress改为50<Se...
    99+
    2023-06-14
  • Android应用中怎实现一个顶部导航栏滑动效果
    本篇文章给大家分享的是有关Android应用中怎实现一个顶部导航栏滑动效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。向app Module中的build.gradle中添加...
    99+
    2023-05-31
    android roi
  • Android怎么实现背景图滑动变大松开回弹效果
    这篇文章主要讲解了“Android怎么实现背景图滑动变大松开回弹效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android怎么实现背景图滑动变大松开回弹效果”吧!原图放大后自定义vie...
    99+
    2023-06-30
  • 如何在Android界面中实现一个回弹效果
    这篇文章给大家介绍如何在Android界面中实现一个回弹效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体代码如下所示:public class MyScrollView extends ScrollView { ...
    99+
    2023-05-31
    android roi %d
  • 使用css3怎么实现一个背景动态渐变效果
    使用css3怎么实现一个背景动态渐变效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计...
    99+
    2023-06-08
  • 怎么在Android应用中实现一个抽屉效果
    怎么在Android应用中实现一个抽屉效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现原理其实单就一个SwipeLayout的实现原理来讲的话,还是很简单...
    99+
    2023-05-31
    android roi
  • 怎么在html5中利用canvas实现一个背景鼠标连线动态效果
    本篇文章为大家展示了怎么在html5中利用canvas实现一个背景鼠标连线动态效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<!doctype html><html&...
    99+
    2023-06-09
  • Slider中怎么实现一个滑动条效果
    本篇文章给大家分享的是有关Slider中怎么实现一个滑动条效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。预览效果1:这个是仿Apple滑动...
    99+
    2024-04-02
  • Android中怎么实现右滑返回上一个界面
    今天就跟大家聊聊有关Android中怎么实现右滑返回上一个界面,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Android右滑返回上一个界面的实现方法public clas...
    99+
    2023-05-30
    android
  • Android应用中怎么实现一个滑动切换页面功能
    Android应用中怎么实现一个滑动切换页面功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 TabLayou 主要实现的是标题头的 滑动 这个 控件 类似于 Sc...
    99+
    2023-05-31
    android roi
  • 怎么在小程序中实现一个滑动块效果
    这期内容当中小编将会给大家带来有关怎么在小程序中实现一个滑动块效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。小程序的css样式.box {    wi...
    99+
    2023-06-14
  • 怎么在Android应用中利用onTouchEvent实现一个滑动布局
    本篇文章给大家分享的是有关怎么在Android应用中利用onTouchEvent实现一个滑动布局,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。boolean onTouch(V...
    99+
    2023-05-31
    android ontouchevent roi
  • 使用css怎么实现一个背景虚化效果
    使用css怎么实现一个背景虚化效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HTML代码: <div class="login-co...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作