Android开发 - 基本UI设计

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>
    
Android_UI设计指南, 一、图标设计指南 创建一个统一的外观和整体的用户界面效果以增加产品的价值,精简的图形样式还能让 用户觉得UI 更专业。 本文提供的信息能帮助你为应用的用户界面的各个部分创建的图标与Android2.X 框架 的一般样式相匹配。以下的指南将帮助你创建一个完美而且统一的用户体验。 下面文档讨论关于Android 应用程序常见类型图标的使用详细指南: 启动图标 启动图标是您的应用程序在设备的主界面和启动窗口的图形表现。 菜单图标 菜单图标是当用户按菜单按钮时放置于选项菜单中展示给用户的图形元素。 状态栏图标 状态栏图标用于应用程序在状态栏中的通知。 Tab图标 Tab 图标用来表示在一个多选项卡界面的各个选项的图形元素。 对话框图标 对话框图标是在弹出框中显示,增加互动性。 列表视图图标 使用列表视图图标是用图形表示列表项,比如说设置这个程序。 想更快的创建你的图标,可以导向Android 图标模板包。 ````` ```` ``` 四、菜单设计指南 菜单保存有一系列的隐藏的指令(用户操作),并通过按钮键或者手势访问。菜单命令 执行操作和导航到您的应用程序或其他应用程序的其他部分提供了一种操作。菜单做为放置 功能和导航之一有效的释放屏幕空间,用按钮或者在应用程序内容区域中的其他用户内容控 件。 Android 提供可以用于提供功能或导航的两种类型菜单。两者之间,你能够为你的应用 程序组织功能和导航。简述: ·属性菜单包括应用全局通用的activity 或开始相关的activity 的首要功能。典型应用是 用户按实际键盘“MENU”键。 ·关联菜单是当前选定项的次要功能。典型应用时长按一个项出现的菜单。就像在功能 菜单,操作可以在当前窗口中运行或者其他窗口 除了最简单的应用程序外,其他都有菜单。系统自动放置菜单并提供用户能接受的标准 方式。在这种意义下,通过熟悉的和可靠的方式为用户能接受所有应用程序的功能。所有菜 单都悬浮在activity 之上并比全屏小,因此应用程序的边缘仍然可见。这是一种视觉提醒, 一旦菜单消失,它的使用是一个中介的操作。 下面开始介绍菜单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值