精华内容
下载资源
问答
  • AndroidUI设计界面布局

    千次阅读 热门讨论 2016-06-05 19:56:18
    前言 ...在Android应用中,UI(User Interface)是非常重要的,它是人与手机之间数据传递、交互信息的重要媒介和对话接口,是Android系统的重要组成部分。苹果公司的iPhone之所以被人们喜欢,除了其强

    前言


        Android从1.0发展到现在的Android6.0已经有将近8年时间了,在这个过程中,它增加得不止是版本上的数字,其UI的颜值也是在逐年上升的,越来越好看了。在Android应用中,UI(User Interface)是非常重要的,它是人与手机之间数据传递、交互信息的重要媒介和对话接口,是Android系统的重要组成部分。苹果公司的iPhone之所以被人们喜欢,除了其强大的功能外,最重要的就是其完美的界面设计。在Android系统中,同样可以开发出绚丽多彩的UI界面。在Android系统中,决定界面是否美观的因素有很多,比如说:布局、内容元素样式,颜色搭配等等。也就是说界面布局是UI设计的一部分。




    界面布局分类


        良好的布局对UI设计至关重要,就好像,一个女人,只要五官端正,那么稍微化点妆就美的不得了了呀,是吧。这界面布局就是UI的五官。不过,它的种类不是五个,是六个,也算是图个吉利(●'◡'●)。分别是:相对布局、线性布局、表格布局、网格布局、帧布局、绝对布局。




    相对布局


        相对布局,英文名RelativeLayout,在Eclipse中开发Android程序时,默认采用的就是相对布局。相对,相对,肯定是有参照物的,这个参照物有两个,大家应该能猜到,就是容器和控件。所以它有两种形式,一种是相对于容器而言的,一种是相对于控件而言的。


     


    线性布局


        线性布局,英文名LinearLayout,是Android中较为常用的布局方式,它使用<LinearLayout>标签。主要有两种形式,一种是水平线性布局,一种是垂直线性布局。




    表格布局


        表格布局,英文名TableLayout,顾名思义,表格布局就是让控件以表格的形式来排列,只要将控件放在单元格中,控件就可以整齐的排列。就像Android手机里面的程序首页一样,你看图片都是大小一样,整齐的排列在表格中的。




    帧布局


        帧布局,英文名FrameLayout,是Android布局中最简单的一种。帧布局为每一个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一帧)。采用帧布局方式设计界面时,只能在屏幕上显示一个控件,如果添加多个控件,这些控件会按照顺序在屏幕上重叠显示,如下图,将背景设置成不同颜色以方便区分,大小依次减小以便不完全覆盖。




    网格布局


        网格布局,英文名GridLayout,Android4.0新增的布局,它实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发。网格布局用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和控件在该区域的显示方式。网格布局中的控件可以很整齐的排列,并且可以控制每个控件所占的行数和列数。




    绝对布局


        绝对布局,英文名AbsoluteLayout,绝对布局需要通过制定x,y坐标来控制每一个控件的位置,放入该布局的控件需要通过android:layout_x、android:layout_y两个属性指定其准确的坐标值,并显示在屏幕上。需要注意的是,理论上绝对布局可以完成任何布局设计,但是实际的工程应用中不提倡使用这种布局。因为使用这种布局不但需要精确的计算每个组件的大小,而且当应用程序运行在不同屏幕的手机上产生的效果也不相同,因此,一般不推荐使用绝对布局。




    QQ登录界面例子


        为了更好的理解布局,我做了一个QQ登录的界面加入说明,其中包含相对布局和线性布局。


    QQ登录界面代码


    <pre name="code" class="html"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:background="#E6E6E6"
        android:orientation="vertical"
        tools:context=".MainActivity" >    //整个大框架是一个相对布局,里面包含着线性布局
    	
        <ImageView 
            android:id="@+id/iv_head"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="40dp"
            android:src="@drawable/dddss"/>
            
        <LinearLayout                       //包含在相对布局里面的线性布局
            android:id="@+id/layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/iv_head"
            android:layout_margin="10dp"                   
            android:background="#87CEEB"
            android:orientation="vertical">
            
            <RelativeLayout                  //包含在线性布局里面的相对布局
                android:id="@+id/rl_username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp">
                
                <TextView
                    android:id="@+id/tv_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="账号"/>
                
                <EditText
                    android:id="@+id/et_number"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_toRightOf="@+id/tv_name"
                    android:hint="请输入账号"      //hint属性,后面的文字用于提示输入框要输入的信息
                    android:background="@null"/>   
                                
             </RelativeLayout> 
             
            <View 
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:background="#E6E6E6"/>
            
            <RelativeLayout
                android:id="@+id/rl_userpsw"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp">
                
                <TextView 
                    android:id="@+id/tv_psw"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="密码"/>
                
                <EditText
                    android:id="@+id/et_password"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_toRightOf="@+id/tv_psw"
                    android:inputType="textPassword"
                    android:hint="请输入密码"
                    android:background="@null"/>
             
            </RelativeLayout>
            
         </LinearLayout>
         
        <Button 
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/layout"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="20dp"
            android:background="#3C8DC4"
            android:text="登录"
            android:textColor="#ffffff" />     
           
    </RelativeLayout>

    
    
    QQ登录界面效果图:


         


    总结


        上文中的效果图是Android手机模拟器,就是代码打包成.apk文件并安装到手机上的效果。好的布局带来好的效果,在实际的开发中,需要综合考虑,比如说不同手机的屏幕大小,像素不同,如果用绝对布局显式的效果就不一样,这是不太好的。以上所述,如有错误,敬请指正。微笑


    展开全文
  • Android界面布局中常见的布局方式

    千次阅读 2018-06-28 18:20:24
    Android界面布局中,常见的布局方式有线性布局(Linear Layout)、相对布局(Relative Layout)、绝对布局(Absolute Layout)、表格布局(Table Layout)、帧布局(Frame Layout)、网格视图(Grid View)、标签...

    在Android界面布局中,常见的布局方式有线性布局(Linear Layout)、相对布局(Relative Layout)、绝对布局(Absolute Layout)、表格布局(Table Layout)、帧布局(Frame Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)等。布局可以在XML中进行规划,也可以在JAVA中完成设计。

    最常用的布局是线性布局(Linear Layout)、相对布局(Relative Layout)。

    这里要注意,在线性布局中一般是以垂直或水平的方向显示其中View元素,将其包含的Widget控件元素按照一个方向进行排列,所以一定要设定方向:此方向由属性“orientation”的值来决定,其中表垂直方向—“android:orientation='vertical'”,表水平方向—“android:orientation='horizontal'”。

    而在相对布局中(Relative Layout)中,是以ViewGroup以相对位置,指定相对于它的邻居的位置来显示视图元素。所以要先确定组件的位置。

    展开全文
  • Android开发 - 基本UI设计

    千次阅读 2018-10-16 20:17:43
    文章目录Android开发 - 基本UI设计1. 页面部分占用1/N的情况2. 分割线的实现 Android开发 - 基本UI设计 本博客记录本人在安卓开发时候遇到的一些UI设计的问题以及解决方法 记录来自Project-FoodList 1. 页面部分...

    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控件

    千次阅读 2016-04-20 16:01:35
    一、Android学习API指南:【了解】 1. 应用的组成部分 App Components 1.1. 应用的基本原理 App Fundamentals 1.2. Activity Activities 1.2.1. 片段 Fragments 1.2.2. 加载器 Loaders 1.2.3. 任务和...

    一、Android学习API指南:【了解】

    1. 应用的组成部分   App Components

    1.1. 应用的基本原理    App Fundamentals

    1.2. Activity      Activities

    1.2.1. 片段    Fragments

    1.2.2. 加载器     Loaders

    1.2.3. 任务和返回堆    Tasks and Back Stack

    1.3. Service服务   Services

    1.3.1. 绑定服务     Bound Services

    1.3.2. AIDL   Android Interface Definition Language 

    1.4. 内容提供器    Content Providers

    1.4.1. 内容提供器基础   Content Providers Basics

    1.4.2. 创建一个内容提供器     Creating a Content Provider

    1.4.3. 日历提供器    Calendar Provider

    1.4.4. 通信录提供器   Contact Provider

    1.5. 意图和意图过滤器    Intents and Intents Filters

    1.6. 进程和线程    Process and Threads 

    1.7. 权限系统    Permissions

    1.8. 窗口小部件    App Widgets

    1.9. Android清单    Android Manifest

    2. 用户界面     User Interface

    2.1. 概述    Overview

    2.2. 布局    Layout

    2.2.1. 线形布局    Linear Layout

    2.2.2. 相对布局    Relative Layout

    2.2.3. 列表视图    ListView

    2.2.4. 网格视图    GridView

    2.3. 输入控件   Input Controls

    2.3.1. 按钮    Buttons

    2.3.2. 文本区域    Text Fields   

    2.3.3. 复选框    Checkboxes

    2.3.4. 单选按钮   Radio Buttons

    2.3.5. 开关按钮   Toggle Buttons

    2.3.6. 下拉列表   Spinners

    2.3.7. 选择器    Pickers

    2.4. 输入事件   Input Events

    2.5. 菜单   Menus

    2.6. 动作条   Action Bar

    2.7. 设置     Settings

    2.8. 对话框   Dialogs

    2.9. 状态通知    Notifications

    2.10. Toast通知   Toasts   

    2.11. 搜索   Search

    2.11.1. 创建一个搜索界面    Creating a Search Interface

    2.11.2. 增加当前搜索提醒  Adding Recent Query Suggestions

    2.11.3. 增加个性化提醒   Adding Custom Suggestions

    2.11.4. 搜索配置   Searchable Configuration

    2.12. 拖放操作    Drag and Drop

    2.13. 可访问性    Accessibility

    2.13.1. 应用程序的可访问性   Making Applications Accessible

    2.13.2. 构建可访问性服务   Building Accessibility Services

    2.14. 风格和主题   Styles and Themes

    2.15. 自定义控件   Custom Components

    3. 应用程序资源   App Resources

    3.1. 概述   Overview

    3.2. 提供的资源   Providing Resources

    3.3. 对资源的访问   Accessing Resources

    3.4. 运行时变化的处理   Handling Runtime Changes

    3.5. 本地化   Localization

    3.6. 资源类型   Resource Types

    3.6.1. 动画   Animation

    3.6.2. 状态颜色列表    Color State List

    3.6.3. 图形处理类资源   Drawable

    3.6.4. 布局   Layout

    3.6.5. 菜单   Menu

    3.6.6. 字符串   String

    3.6.7. 样式    Style

    3.6.8. 其他类型   More Types

    4. 动画和图形    Animation  and Graphics

    4.1. 概述   Overview

    4.2. 属性动画   Property Animation

    4.3. 补间动画   View Animation

    4.4. 帧动画    Drawable Animation

    4.5. 画布和绘制   Canvas and Drawables

    4.6. OpenGL    OpenGL  ES

    4.7. 硬件加速   Hardware Acceleration

    5. 高性能计算   Computation

    5.1. RenderScript编程   RenderScript 

    5.2. RenderScript编程进阶    Advanced RenderScript

    5.3. 运行时API说明    Runtime API Reference

    6. 多媒体和照相机     Media and Camera

    6.1. 媒体播放    Media Playback

    6.2. 支持的媒体格式    Supported Media Formats

    6.3. 音频捕获    Audio Capture

    6.4. JET引擎    JetPlayer

    6.5. 照相机      Camera

    7. 定位和传感器    Location and Sensors

    7.1. 定位和地图    Location and Maps

    7.2. 定位策略    Location Strategies

    7.3. 传感器概述    Sensors Overview

    7.4. 手势传感器    Motion Sensors

    7.5. 位置传感器    Position Sensors

    7.6. 环境传感器    Environment Sensors

    8. 通信   Connectivity

    8.1. 蓝牙   Bluetooth

    8.2. NFC通信   NFC

    8.2.1. NFC基础   NFC Basics

    8.2.2. NFC进阶   Advanced NFC

    8.3. Wi-FI直连  Wi-Fi 2P

    8.4. USB通信  USB

    8.4.1. 附件模式 Accessory

    8.4.2. 主机模式  Host

    8.5. SIP协议   SIP

    9. 文本输入法   Text and Input

    9.1. 复制和粘贴    Copy and Input

    9.2. 创建一个输入法    Creating an IME

    9.3. 拼写检查器    Spelling Checker

    10. 数据存储   Data Storage

    10.1. 存储选项   Storage Options

    10.2. 数据备份   Data Backup

    10.3. 应用程序安装位置   App install Locaiton

    11. 系统管理员   Administration

    11.1. 硬件管理   Device  Policies

    12. web应用   Web Apps

    12.1. 概述    Overview

    12.2. web应用的屏幕适配   Targeting Screens from Web Apps

    12.3. 利用webview构建web应用   Building Web Apps in WebView

    12.4. 调试web应用   Debugging Web Apps

    12.5. web应用的优化   Best Practices for Web Apps 

    13. 更好的策略

    13.1. 一致性(兼容性)  Compatibility

    13.2. 支持多屏幕   Supporting Multiple Screens

    13.2.1. 适配指定屏幕    Distributing to Specific Screens

    13.2.2. 屏幕兼容模式    Screen Compatibility Mode

    13.3. 支持平板和手机   Supporting Tablets and Handsets

    14. Google提供的服务  Google Services 

    14.1. 应用程序内部付费机制

    14.2. 应用程序内部付费机制概述 

    14.3. 如何使用应用程序付费服务 

    14.4. 订阅机制 

    14.5. 安全与设计 

    14.6. 测试应用程序付费服务 

    14.7. 应用程序付费机制的管理 

    14.8. 应用程序付费的相关API 

    14.9. 应用程序许可机制

    14.10. 许可机制概述 

    14.11. 设置许可机制 

    14.12. 在应用中增加许可 

    14.13. 许可机制API 

    14.14. Google软件商店服务 

    14.15. 在Google Play中加过滤器 

    14.16. 多APK支持 

    14.17. 对APK附加文件的服务 

    14.18. Google云消息服务

    14.19. 如何使用google云服务 

    14.20. 架构概述 

    14.21. 演示教程 

    14.22. Google云服务进阶 

    14.23. 信息迁移 



    二、布局的介绍:【了解】
    1、在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayoutLinearLayoutFrameLayout、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。
    2、在2.2操作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。
    3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)
    总之,Android中一共有六种布局。目前推荐使用RelativeLayoutLinearLayout、GridLayout三种布局。


    三、View类的常用xml属性:
    (一)、类结构:
    java.lang.Object
       ↳  android.view.View

    (二)、View及其子元素常用属性:(各种布局及控件的共同属性)
    1. android:id
    2. android:background 
    3. android:onClick     为该控件的单击事件绑定监听器
    4. android:padding    设置控件四周的填充区域
    5. android:visibility    设置该控件是否可见(invisible/visible/gone
    6. android:alpha        设置该组件透明度(0-1之间的数值)
    7. android:layout_height      子组件的布局高度
    8. android:layout_width        子组件的布局宽度
    9. android:layout_margin     设置子组件的外边距


    四、LinearLayout:【掌握
    (一)、概念:线性布局控制其中的控件或组件横向或纵向排列。在线性布局布局中,每一行或每一列只能放单独一个控件。线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来。
    线性布局的默认方向是水平方向(Horizontal),还有一个选项是vertical。

    (二)、LinearLayout的常用属性:
    1.android:orientation     定义布局内控件或组件的排列方式
    可选项:vertical 、 horizontal

    2.android:layout_width    定义控件的宽度
    可选项:fill_parent / match_parent/ wrap_content/绝对数值
    备注:fill_parent / match_parent的效果完全一致,都是填充整个父控件。但是自2.2版本开始推荐使用match_parent 。wrap_content指的是该控件的宽度正好包裹内容物。

    3.android:layout_height    定义控件的高度
    可选项:fill_parent / match_parent/ wrap_content/绝对数值
    备注:fill_parent / match_parent的效果完全一致,都是高度填充整个父控件。wrap_content指的是该控件的高度正好包裹内容物。

    4.android:id   设置控件的id。这样就可以在R.java中自动生成相应的值,在程序中通过findViewById就可以调用。
    设置id的格式为:android:id = "@+id/id的名字"

    5.android:background     设置控件的背景颜色或背景图片
    例如:android:background="#ffffff"
              android:background="@drawable/图片名称"
    【备注:】
    颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。
    #FFFFFF 代表白色
    #000000  黑色
    #FFFFFFFF   完全不透明
    #00FFFFFF   完全透明
    #88FFFFFF   半透明

    6.android:layout_weight    设置控件的权重。即各控件在水平或者垂直方向上平均分配。
    备注:如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。

    7.android:gravity   该属性用来控制该View的内容物的位置。
    如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。
    如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。
    可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
    【备注:】本属性与android:layout_gravity不同。

    8.android:layout_gravity   该属性用于设置控件相对于容器的对齐方式。
    可选项有:top、bottom、left、right、center_vertical、center_horizontal 、fill_vertical 、 center、fill等等。
    这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。
    【备注:】而本属性是android:layout_gravity属性,与 android:gravity 属性不同。

    (三)、LinearLayout的特有属性:【重新归纳:去除公共属性后的特有属性
    1、android:orientation    布局管理器内组件的排列方式
    2、android:gravity    设置布局管理器内组件的对齐方式
    3、android:weightSum

    (四)、 LinearLayout 子元素的特有属性:
    1、android:layout_weight    子元素在 LinearLayout 中所占的权重
    2、android:layout_gravity     子元素在 LinearLayout 中的对齐方式




    五、RelativeLayout:【掌握
    (一)、概念:指按着控件之间的相对位置来进行布局。

    (二)、RelativeLayout特有属性:
    1、android:gravity    设置布局容器内子控件的对齐方式    
    2、android:ignoreGravity    设置布局管理器内哪个控件不受gravity属性的影响

    (三)、RelativeLayout子元素的特有属性:LayoutParams
       怕;
    1. layout_toRightOf      该控件在哪个控件的右侧
    2. layout_toLeftOf        该控件在哪个控件的左侧
    3. layout_above           该控件在哪个控件的上侧
    4. layout_below            该控件在哪个控件的下侧

        B、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。
    1. layout_alignRight      该控件与哪个控件的右对齐
    2. layout_alignLeft        该控件与哪个控件的左对齐
    3. layout_alignTop        该控件与哪个控件的顶对齐
    4. layout_alignBottom   该控件与哪个控件的底对齐

        C、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。
    1. layout_alignParentRight               该控件与父布局控件的右对齐吗?
    2. layout_alignParentLeft                 该控件与父布局控件的左对齐吗?
    3. layout_alignParentTop                 该控件与父布局控件的顶端对齐吗?
    4. layout_alignParentBottom            该控件与父布局控件的底部对齐吗?
    5. layout_centerInParent                  该控件位于父布局控件的中心位置吗?
    6. layout_centerVertical                    该控件位于父布局控件的垂直中心位置吗?
    7. layout_centerHorizontal                该控件位于父布局控件的水平中心位置吗?

    六、GridLayout:网格布局
    (一)、GridLayout布局属性:
    1、android:alignmentMode
    属性说明:设置布局的对齐模式。可以取以下值:
    alignBounds -- 对齐子视图边界。
    alignMargins -- 对齐子视图边距。

    2、android:columnCount
    属性说明:GridLayout的最大列数

    3、android:rowCount
    属性说明:GridLayout的最大行数

    4、android:orientation
    属性说明:GridLayout中子元素的布局方向。有以下取值:
    horizontal -- 水平布局。
    vertical -- 竖直布局。

    5、android:columnOrderPreserved
    属性说明: 设置该网格布局是否保留列序号。默认是true。

    6、android:rowOrderPreserved
    属性说明: 设置该网格布局是否保留行序号。默认是true。

    7、android:useDefaultMargins
    属性说明: 设置GridLayout使用默认的边距。默认值是false。


    (二)、GridLayout子元素的属性:
    1、android:layout_column
    属性说明: 显示该控件的列。例如,android:layout_column="0",表示在第1列显示该控件;android:layout_column="1",表示在第2列显示该控件。

    2、android:layout_row
    属性说明: 该控件所在行。例如,android:layout_row="0",表示在第1行显示该控件;android:layout_row="1",表示在第2行显示该控件。它和 android:layout_column类似。

    3、android:layout_columnSpan
    属性说明: 列合并。即该控件所占的列数。例如,android:layout_columnSpan="2",表示该控件占2列。
     
    4、android:layout_rowSpan
    属性说明: 行合并。即该控件所占的行数。例如,android:layout_rowSpan="2",表示该控件占2行。

    5、android:layout_gravity
    属性说明:该控件的布局方式。选项值:
    • top                      -- 控件置于容器顶部,不改变控件的大小。
    • bottom                -- 控件置于容器底部,不改变控件的大小。
    • left                     -- 控件置于容器左边,不改变控件的大小。
    • right                   -- 控件置于容器右边,不改变控件的大小。
    • center_vertical     -- 控件置于容器竖直方向中间,不改变控件的大小。
    • fill_vertical          -- 如果需要,则往竖直方向延伸该控件。
    • center_horizontal -- 控件置于容器水平方向中间,不改变控件的大小。
    • fill_horizontal      -- 如果需要,则往水平方向延伸该控件。
    • center                -- 控件置于容器中间,不改变控件的大小。
    • fill                     -- 如果需要,则往水平、竖直方向延伸该控件。
    • clip_vertical        -- 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
    • clip_horizontal     -- 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是  right的,则剪切该控件的左边。
    • start                     -- 控件置于容器的起始处,不改变控件的大小。
    • end                   -- 控件置于容器的结束处,不改变控件的大小。




    七、Android UI控件及UI组件:
    (一)、控件名称:【标红色的为常用的】
    1. TextView        文本视图
    2. EditText         文本编辑框
    3. Button            按钮
    4. ImageView、Gallery   图像视图、画廊(建议过期)
    5. ImageButton    图片按钮
    6. ToggleButton 、Switch    开关按钮、开关
    7. RadioButton    单选按钮
    8. CheckBox       多选框
    9. Spinner           下拉列表
    10. AutoCompleteTextView   自动完成文本框
    11. ProgressBar    进度条
    12. SeekBar          拖动条
    13. RatingBar        星级评分条
    14. TimePickerDatePicker   时间选择器、日期选择器
    15. AnalogClock、DigitalClock    模拟时钟、数字时钟
    16. Dialog(AlertDialogProgressDialogTimePickerDialogDatePickerDialog)提示对话框、进度对话框、时间选择对话框、日期选择对话框
    17. ListView、GridView        列表视图【最重要的UI组件】、 网格视图 
    18. ScrollView      滚动视图
    19. ExpandableListView   可展开列表视图
    20. WebView        网页视图
    21. SearchView    搜索框
    22. TabHost         书签选项卡
    23. Notification 、Toast         通知 、 吐司(短时提醒)    
    24. Menu(OptionMenu /SubMenu、ContextMenu)    菜单(选项菜单、上下文菜单)
    25. ImageSwitcher、TextSwitcher   、   ViewPager 图像切换器、文本切换器
    26. ActionBar        动作导航条


    八、基本控件:——TextView:
    (一)、TextView类结构:
    java.lang.Object
       ↳ android.view.View
        ↳ android.widget.TextView





    (二)、TextView 常用属性:
    1、andorid:text   设置文本的内容
    2、 android:textColor     设置文本的颜色
    3、 android:textSize       设置文本的字体大小(sp)
    4、andorid:height          设置文本的高度,以像素为单位
    5、 android:width            设置文本的宽度,以像素为单位
    6、 android:inputType     设置文本的类型。例如是普通文本,还是email,password,数字等等。
    7、 android:singleLine     设置文本是否是单行显示。
    8、android:gravity     设置文本框内文本的对齐方式。可选项有:top、bottom、left、right、center、fill、center_vertical、center_horizontal、fill_horizontal等等。这些属性值也可以同时指定,各属性值之间用竖线隔开。例如right|bottom
    9、android:drawableLeft    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    10、android:drawableRight    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    11、android:drawableTop    用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    12、android:drawableBottom   用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    13、android:autoLink   给指定的文本增加可单击的超链接。可选项为:none、web、email、phone、map和all。
            多个选项之间使用“|”分隔,也可以使用all
    14、android:hint    设置当文本框内文本内容为空时,默认显示的提示性文字。

    【补充:】
    1、android:textAllCaps="true"     设置所有字母都大小
    2、android:ellipsize="end"           文字过长,设置省略号。可选项:start , end ,middle,marquee
    • android:ellipsize="start" 省略号在开头        
    • android:ellipsize="middle" 省略号在中间        
    • android:ellipsize="end" 省略号在结尾        
    • android:ellipsize="marquee" 跑马灯显示
           【备注:】要实现跑马灯效果。要同时具有以下属性。
    •     android:ellipsize="marquee" 
    •     android:singleLine="true"  
    •     android:focusable="true" 
    •     android:focusableInTouchMode="true" 
    •     android:marqueeRepeatLimit="marquee_forever"


    九、基本控件:——EditText:
    (一)、 EditText 类结构:
    java.lang.Object
       ↳ android.view.View
        ↳ android.widget.TextView
          ↳ android.widget.EditText

     所以 EditText 继承了TextView的所有属性。

    (二)、android:inputType的可选项:
    1. android:inputType="textPersonName
    2. android:inputType="textPassword
    3. android:inputType="numberPassword"      只可以输入数字
    4. android:inputType="textEmailAddress
    5. android:inputType="phone"      只允许输入数字,括号等特殊符号,不可以输入字母。
    6. android:inputType="textPostalAddress"   
    7. android:inputType="time
    8. android:inputType="date
    9. android:inputType="number


    十、基本控件:——Button:
    (一)、Button类结构:
    java.lang.Object
       ↳ android.view.View
         ↳ android.widget.TextView
           ↳ android.widget.Button

     所以Button继承了TextView的所有属性。



    【特别补充:】sp、dp、dip、pt、px等单位的区别?【重点
    1. dpi    dpi指像素密度。dots per inch  ,即每英寸内像素点的个数。它不是表示长度的单位。
      • 在android中认为:低(120dpi),中(160dpi),高(240dpi),超高(320dpi)。随着技术的增长,实际dpi已经超出这个定义范围。
    2. dip    device independent pixels  ,即与设备无关的像素。目前这个单位已经被dp所取代,而不建议使用dip。
    3. dp     与dip的概念一样。不过dp已经取代了dip。在Android中用来表示非文字大小的尺寸。例如:外边距、内填充等。
      • px = dp * (dpi / 160)
      • 3.7寸屏幕,分辨率320*480手机上,正好1px = 1dp。
    4. sp      scale  independent  pixel  ,即与缩放比例无关的像素。在android中常用来表示文字大小。
    5. px      表示像素。因为同样是200px,但是在不同手机下显示的大小是不同的。
    6. pt      point磅。1磅=1/74英寸
    • xlarge 屏幕至少:960dp x 720dp 
    • large 屏幕至少 :640dp x 480dp 
    • normal 屏幕至少 :480dp x 320dp 
    • small 屏幕至少 :426dp x 320dp
    • 总之:dp是用来定义非文字的尺寸,sp用来定义文字大小。px只用于产生一条一像素的分割线时使用。
    展开全文
  • android ui设计 android源码 android开源项目 android项目代码 androidui设计,UI小练习
  • 布局管理器都是以ViewGroup为基类派生出来的;...在上面的UML图中可以看出, 绝对布局布局 网格布局 相对布局 线性布局是直接继承ViewGroup,表格布局是继承的LinearLayout; 一. 线性布局(LinearLayout) 1. 线
  • Android中的UI界面元素是由View和ViewGroup对象建立的,ViewGroup继承于View LinearLayout–线性布局 RelativeLayout–相对布局 FrameLayout–帧布局 TableLayout–表格布局 AbsoluteLayout–绝对布局...
  • 效果图: 实现方法: MainActivity: package ... import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(B
  • Android开发UI界面设计

    千次阅读 2012-09-11 16:16:13
    Android开发UI界面设计主要有两点:一是Android按钮(Button)的UI设计,二是:ListView以及GridView的UI设计。   按钮的状态: 我们一般搞UI设计,按钮通常有三个状态:normal(正常状态);focus(焦点状态),pressed(按...
  • Android入门——基本UI设计

    千次阅读 2016-10-27 12:53:18
    android
  • Android初始UI界面布局的简单设计

    千次阅读 2016-08-23 20:40:07
    (1)界面布局有以下几种形式:  传统的说是有五大布局:  分别为: 线性布局 Linearlayout  相对布局 RelativeLayout  表格布局 TableLayout(现在已经过时了)  绝对布局 AbsolutelyLayout ...
  • Android Studio:基本UI界面设计 (详细)

    万次阅读 多人点赞 2017-12-02 15:01:06
    基本UI界面设计 二、 实现内容 实现一个 Android 应用,界面呈现如下效果:   三、 实验过程 (1)标题  首先我们建立一个TextView控件来写标题。 实验对标题的要求如下:  标题字体大小 20sp(android:...
  • Android用户界面设计布局基础

    千次阅读 2014-05-03 10:49:32
    本文为Android用户界面设计教程——布局基础。在这个教程里,我们提供一个关于布局如何适应Android应用程序架构的概述。 理解布局对于好的Android应用设计来说是非常重要的。在这个教程里,我们提供...
  • 线性布局管理器(LinearLayout):点击打开链接 表格布局管理器(TableLayout):点击打开链接 ...1.1手机 UI设计原则: 1、需要界面设计与程序逻辑完全分离,这样不仅有利于他们的并行开发,而且在后期修改界面
  • Android学习笔记——UI设计工具

    千次阅读 2015-08-06 09:24:47
    ADT提供了UI的预览功能我们可以再main.xml上右键,一次选择"Open With"->"Legacy Android Layout Editer"菜单命令,进入到UI设计界面,如下图: 左侧为组件选择框。 DroidDraw是一款功能比较强大的AndroidUI...
  • Android常见界面布局(详细介绍)

    千次阅读 2020-04-21 23:04:32
    所有的UI元素都是通过View与ViewGroup构建的,对于一个Android应用的用户界面来说,ViewGroup作为容器盛装界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。 二、界面布局编写方式 有两种界面布局...
  • Android UI布局

    千次阅读 2014-02-20 23:43:44
    概述:布局(Layout)的概念是针对Activity的,Activity就是布满整个Android设备的窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,每个需要显示的Activity都需要在AndroidManifest....
  • Android UI界面设计

    千次阅读 2017-03-14 15:15:31
    今天要写的是一个简单的手机信息页面显示,用Android中的layout来实现,主要运用了相对布局和线性布局来完成,然后是手机信息界面的国际化。    这是需要完成的界面
  • Android应用程序UI设计(1)_布局

    千次阅读 2012-09-01 20:31:07
    1.Android UI元素简介 Android使用xml文件进行布局。在布局文件中体现了一些UI元素。 1.Android.view.View(视图) View是最基础的一...
  • 前言 啦啦啦~本学期要开始学习Android开发啦~ 博主在开始学习前是完完全全的...话不多说,首先进入我们的正题~Android开发一基本UI界面设计——布局和组件(Android Studio的配置安装使用等在以后为各位补上~)...
  • Android UI布局创建简单手机界面

    千次阅读 2017-03-13 22:52:21
    之前我们学习了 与Android UI布局有关的操作,今天我们就运用我们学到的知识来创建一个简单的手机界面。 1. 运用知识 1. 相对布局、线性布局的使用 2. 样式的使用 3. 如何对程序进行国际化 2. 实验仪器 装有...
  • Android学习——5个UI界面设计

    千次阅读 多人点赞 2021-05-18 22:33:12
    Android学习——5个UI界面设计一、计算器二、frameLayout(框架布局)实现登录界面三、RelativeLayout相对布局实现登录界面四、表格布局五、多布局 一、计算器 <?xml version="1.0" encoding="utf-8"?> <...
  • Android Studio 界面布局

    千次阅读 2018-01-19 22:37:55
    1 相对 布局 RelativeLayout 相对布局的 XML 元素是, 相对布局的特点是可以让控件之间互相确定 关系,这样可以保证在屏幕的局部范围内几个控件之间的关系不受外部影响。 具体实例来学习它的用法。 ...
  • Android UI设计规则

    2014-08-07 14:22:29
    Android UI设计规则
  • Android Studio基本UI界面设计

    万次阅读 2018-06-19 16:16:55
    实验对标题的要求如下:1 标题字体大小 20sp(android:textSize="20sp")2 与顶部距离 20dp (与父容器顶部对齐后再设置与顶部距离20dp) 3 居中 (与父容器左右都对齐后即可) (2)图片 建立一...
  • androidUI设计心得

    千次阅读 2017-03-13 19:44:07
    UI布局设计布局方式有相对布局(RelativeLayout)线性布局(LinearLayout),表格布局(TableLayout),网格布局(GridLayout),帧布局(FrameLayout),绝对布局(AbsoluteLayout);下面这个界面布局格式,...
  • Android UI 设计规范

    千次阅读 2020-01-10 12:00:10
    1. 基础常识 ... 现在,多数标注工具都支持 dp 标注功能,比如 MarkMan,如果UI设计者是按照1280*720的尺寸设计的效果图,在标注时选择xhdpi即可: 使用 MarkMan 进行 dp 标注 DP/PX在线转换工具: ...
  • RelativeLayout作者:码龙马龙Android六大布局:线性布局==LinearLayout、表格布局==TableLayout、相对布局==RelativeLayout、帧布局==FrameLayout、绝对布局==AbsoluteLayout、网格布局==GridLayout。其中,表格...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,596
精华内容 14,638
关键字:

android界面布局及ui设计