热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一半在外的按钮布局效果实现

刚开始实习的日常果然就是画画界面布局啊~哈哈,不过就算是写布局文件也没有想象的那么简单。首先学到的就是大量使用LinearLayout+weight,基本全是权重,这样在屏幕适配的时候才好适配,

刚开始实习的日常果然就是画画界面布局啊~哈哈,不过就算是写布局文件也没有想象的那么简单。首先学到的就是大量使用LinearLayout+weight,基本全是权重,这样在屏幕适配的时候才好适配,虽然以前学习的时候也知道要多用权重方便适配,但是自己写的时候也不太注意,现在看来基本每个界面能用权重的全是用权重,这个是学习到了。然后遇到了一个这样的布局。如下如图:


上面是一个地图的MapView下面是一个ViewPager,中间有一个ImageButton,开始的时候也是很顺利的线性布局安权重分配MapView和ViewPager,但是在加这个按钮的时候犯了难,LinearLayout直接加不行,中间就会有一段空白,换成RelativeLayout也不行,不按权重换个分辨率不一样的手机这个imagebutton就有个能不在这两者中间了。百度啊百度,找了好多也没找到类似的例子,找到个LinearLayoutandroid:clipChildren属性试了试也不行,也稍微有些区别。最后想到FrameLayout,在帧布局中放一个线性布局,在线性布局中按权重分别放置MapView和ViewPager。然后再在代码中动态创建一个ImageButton然后放到帧布局里去。获取屏幕高度按比例计算ImageButton放置的位置,设置即可。但是这样也太麻烦,都用了FrameLayout了,为什么不再放一层,于是在FrameLayout里放一层LinearLayout按权重设置好地图的view和viewpager。利用FrameLayout是可以叠加放置的,在上方再放一层LinearLayout,然后在这一层里用两个透明的LinearLayout按权重填充布局将ImageButton放在适当权重的地方就可以了。

代码就不贴了,之前一直想着怎么把ImageButton塞进中间去,结果怎么也塞不进去,换成纵向思维后,利用FrameLayout网上叠加,一下子就出来了。有时候换个思考方式,难题其实很简单!



推荐阅读
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • MacOS上高效的SVN管理工具Cornerstone安装指南
    本文详细介绍如何在MacOS上安装和配置高效SVN管理工具Cornerstone,涵盖其主要功能和优化后的性能提升。 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
  • 本文探讨了在Java中实现系统托盘最小化的两种方法:使用SWT库和JDK6自带的功能。通过这两种方式,开发者可以创建跨平台的应用程序,使窗口能够最小化到系统托盘,并提供丰富的交互功能。 ... [详细]
  • 深入理解ASP.NET MVC中的_ViewStart.cshtml
    本文介绍了_ViewStart.cshtml文件在ASP.NET MVC 3.0及以上版本中的作用和使用方法。该文件位于Views目录下,主要用于统一配置视图布局和其他全局设置。 ... [详细]
  • 优化 Android 按钮状态下的背景和文本颜色变化
    本文介绍如何通过 Android 的 Selector 实现按钮在不同状态下(如按压)的背景和文本颜色动态变化。我们将详细讲解实现步骤,并提供完整的代码示例。 ... [详细]
  • 本文详细探讨了Android Activity中View的绘制流程和动画机制,包括Activity的生命周期、View的测量、布局和绘制过程以及动画对View的影响。通过实验验证,澄清了一些常见的误解,并提供了代码示例和执行结果。 ... [详细]
author-avatar
手机用户2702938100
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有