Android开发 – 基本UI设计

Android开发 – 基本UI设计文章目录Android开发-基本UI设计1.页面部分占用1/N的情况2.分割线的实现Android开发-基本UI设计本博客记录本人在安卓开发时候遇到的一些UI设计的问题以及解决方法记录来自Project-FoodList1.页面部分占用1/N的情况示例:完整界面 界面顶部要求顶部界面只占1/3解决方案使用线性布局,其属性android:orienta…

大家好,又见面了,我是你们的朋友全栈君。

Android开发 – 基本UI设计

  • 本博客记录本人在安卓开发时候遇到的一些UI设计的问题以及解决方法
  • 记录来自Project-FoodList

1. 页面部分占用1/N的情况

  • 示例:
    • 完整界面
      在这里插入图片描述
    • 界面顶部
      在这里插入图片描述
    • 要求顶部界面只占1/3
    • 解决方案
      • 使用线性布局,其属性android:orientation="vertical"android:weightSum="3"
      • 线性布局里面有两个相对布局,分别设置两个相对布局的layout_weight
      • 关于其中的权重比为2:1,参阅Android布局中的layout_weight和weightSum属性的详解及使用
        <LinearLayout android:orientation="vertical" ... android:weightSum="3">
            <!-- 上部 -->
            <RelativeLayout android:layout_weight="2" android:id="@+id/top" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorPrimaryDark">
        
                ...
        
            </RelativeLayout>
        
            <!-- 中部和底部 -->
            <RelativeLayout android:id="@+id/middle" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="match_parent">
        
                ...
        
            </RelativeLayout>
        </LinearLayout>
        

2. 分割线的实现

  • 分割线的实现,方法比较粗暴,直接使用ImageView组件实现
  • 给其src设置为一个颜色,然后修改其weight(对应分割线的宽度)以及height(对应分割线的高度)属性以及位置设置
     <ImageView android:id="@+id/horLine2" android:layout_width="match_parent" android:layout_height="15dp" android:layout_below="@+id/info" android:layout_marginTop="15dp" android:src="#1E000000"/>
    

3. 多个组件高度一致,顶对齐,并且水平均匀分布

  • 例子:需要实现下图的情况,需要三个button高度一致,顶对齐并且水平均匀分布
    在这里插入图片描述
  • 首先需要了解一下约束布局以其使用
    • 约束布局(ConstraintLayout),布局内组件按各种约束排列。每个组件受到三类约束,即其他组件,父容器(parent),基准线(GuideLine)。 约束布局代码可归纳为以下形式:app:layout_constraint[组件本身的位置]_to[目标位置]Of=”[目标id]”。因此若想要组件水平居中,只需设置组件的左右边界与父容器的左右边界分别对齐。同理,组件的垂直居中也可以这么设置。
  • 再思考本问题,是否也能使用约束布局来完成呢?使用约束布局,将三个按钮放在一个约束布局里面,每个按钮视图的左侧或者右侧与需要的对齐按钮的相应侧对齐即可,则组件之间就可以处于均匀分布了。
     <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content">
         <Button app:layout_constraintRight_toLeftOf="@+id/loadBtn" app:layout_constraintLeft_toLeftOf="parent" android:id="@+id/saveBtn" android:text="SAVE" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    
         <Button android:id="@+id/loadBtn" android:text="LOAD" app:layout_constraintLeft_toRightOf="@+id/saveBtn" app:layout_constraintRight_toLeftOf="@+id/clearBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    
         <Button android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintLeft_toRightOf="@+id/loadBtn" app:layout_constraintRight_toRightOf="parent" android:id="@+id/clearBtn" android:text="CLEAR"/>
    
     </android.support.constraint.ConstraintLayout>
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151079.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mongodb 导出数据_dbeaver导出查询结果

    mongodb 导出数据_dbeaver导出查询结果目录1、定义查询js(1)导出json(2)导出csv2、执行导出命令(1)json(2)csv1、定义查询js在mongo所在服务器,添加查询文件:query.js。内容如下:(1)导出jsondb.getCollection(‘集合名称’).find({查询条件},{“o_guid”:1,”ebs_name”:1,”ebs_f_name”:1})(2)导出csvdb.getCollection(‘集合名称’).find({查询条件},{“o_guid”:1,”ebs_name”

    2025年6月14日
    6
  • STL库简介_库喜龙电话

    STL库简介_库喜龙电话一、前言STL是c++中的一个标准模板库,作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。二、什么是STL”什么是STL?”,假如你对STL还知之甚少,那么我…

    2022年10月16日
    4
  • 几种常见mybatis分页实现[通俗易懂]

    几种常见mybatis分页实现[通俗易懂]mybatis框架分页实现,有几种方式,最简单的就是利用原生的sql关键字limit来实现,还有一种就是利用interceptor来拼接sql,实现和limit一样的功能,再一个就是利用PageHelper来实现。这里讲解这三种常见的实现方式:无论哪种实现方式,我们返回的结果,不能再使用List了,需要一个自定义对象Pager。packagecom.xxx.mybatis.bean;…

    2022年10月20日
    3
  • 实现括号匹配算法(括号匹配的检验算法完整程序)

    实现括号匹配算法(顺序表)括号匹配问题假设一个算术表达式中包含圆括号、方括号和花括号三种类型的括号,编写一个函数,用来判别表达式中的括号是否正确配对,并设计一个测试主函数。**【算法思想】**在算术表达式中,右括号和左括号匹配的次序正好符合后到的括号要最先被匹配的“后进先出”堆栈操作特点,因此可以借助一个堆栈来进行判断。括号匹配共有以下4种情况:左、右括号配对次序不正确;右括号多于左…

    2022年4月15日
    131
  • 万字长文告诉新手如何学习Python图像处理(上篇完结 四十四) | 「Python」有奖征文

    万字长文告诉新手如何学习Python图像处理(上篇完结 四十四) | 「Python」有奖征文这篇文章是图像处理的最后一篇文章,后面我们将进入新的章节。图像处理文章主要讲解的图像处理方法包括图像几何运算、图像量化采样、图像点运算、图像形态学处理、图像增强、图像平滑、图像锐化、图像特效、图像分割、傅里叶变换与霍夫变换、图像分类等。个人感觉如果你是编程初学者、Python初学者或图像处理爱好者,这个系列真心适合你学习,并且这篇文章算是Python图像处理的学习路线,希望您喜欢。

    2022年10月14日
    1
  • kafka集群操作命令「建议收藏」

    kafka集群操作命令「建议收藏」1.修改kafka配置文件 broker.id=0zookeeper.connect=192.168.1.10:2181,192.168.1.12:2181,192.168.1.13:2181/kafka 说明: 默认Kafka会使用ZooKeeper默认的/路径,这样有关Kafka的ZooKeeper配置就会散落在根路径下面,如果你有其他的应用也在使用ZooKee…

    2022年5月16日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号