Android UI布局—— 仿QQ登录界面

 

最近,有点空闲的时间就拿QQ登录界面来模仿练手,做了个简单的登录界面。界面一般般吧,不算很漂亮,现在拿出来分享,希望大家一起学习与进步。有什么不足之处,请各位大侠多多赐教,谢谢。这个界面涉及到LinearLayout、TableLayout和RelativeLayout等等。话不多说,先把截图弄出来先。

 1、320 * 480模拟器上运行的效果图

 

2、480 * 800模拟器上运行的效果图

 

3、在Eclipse下截的大纲视图,这样看起来比较直观

     

4、XML代码(各个布局的说明已经很清楚了): 

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <!-- 插入整个布局的背景图片 -->
  3 <LinearLayout 
  4     xmlns:android="http://schemas.android.com/apk/res/android"
  5     android:layout_width="fill_parent"
  6     android:layout_height="fill_parent"
  7     android:orientation="vertical" 
  8     android:background="@drawable/back">
  9     <!-- QQ登录界面最上面的图片 -->
 10     <ImageView
 11         android:id="@+id/imageView1"
 12         android:layout_width="wrap_content"
 13         android:layout_height="wrap_content"
 14         android:src="@drawable/qq" />
 15     <!-- 水平布局,包括QQ头像和输入信息的账号和密码 -->
 16     <LinearLayout
 17         android:orientation="horizontal"
 18         android:layout_width="fill_parent"
 19         android:layout_height="wrap_content" >
 20         <!-- QQ头像,插入图片,重心垂直居中,四周扩充3个像素 -->
 21         <ImageView
 22             android:id="@+id/head"
 23             android:layout_width="wrap_content"
 24             android:layout_height="wrap_content"        
 25             android:padding="3dip"
 26             android:layout_gravity="center_vertical"
 27             android:src="@drawable/head" />
 28         <!-- 表格布局,包括账号和密码 -->
 29         <TableLayout
 30             android:id="@+id/tableLayout1"
 31             android:layout_width="wrap_content"
 32             android:layout_height="wrap_content" 
 33             android:stretchColumns="1">
 34             <!-- 表格的第一行,账号文本和输入框,黑色粗体字,重心靠右,四周扩充5个像素 -->
 35             <TableRow>
 36                 <!-- "账号"文本 -->
 37                 <TextView 
 38                     android:text="账号:"                    
 39                     android:textStyle="bold"
 40                     android:textColor="#000000"
 41                     android:gravity="right"    
 42                     android:padding="5dip"/>
 43                 <!-- "账号"输入框,文本超出TextView的宽度的情况下,出现横拉条   -->
 44                 <EditText 
 45                     android:id="@+id/username"
 46                     android:scrollHorizontally="true"/>
 47             </TableRow>
 48             <!-- 表格的第二行,密码和密码输入框,黑色粗体字,重心靠右,扩充5个像素 -->
 49             <TableRow>
 50                 <!-- "密码"文本 -->
 51                 <TextView 
 52                     android:text="密码:"                    
 53                     android:textStyle="bold"
 54                     android:textColor="#000000"
 55                     android:gravity="right"    
 56                     android:padding="5dip"/>
 57                 <!-- "密码"输入框;文本超出TextView的宽度的情况下,出现横拉条  -->
 58                 <EditText 
 59                     android:id="@+id/password"
 60                     android:password="true"
 61                     android:scrollHorizontally="true"/>
 62             </TableRow>                      
 63         </TableLayout>      
 64     </LinearLayout>
 65     <!-- 相对布局,"记住密码"按钮和"自动登录"按钮 -->
 66     <RelativeLayout
 67         android:layout_width="fill_parent"
 68         android:layout_height="wrap_content">
 69         <!-- "记住密码"多选框,黑体字,左缩进5个像素,选中状态 -->
 70         <CheckBox             
 71             android:id="@+id/rememberPassword" 
 72             android:layout_width="wrap_content" 
 73             android:layout_height="wrap_content"
 74             android:text="记住密码" 
 75             android:textColor="#000000"
 76             android:checked="true"
 77             android:layout_marginLeft="5dip"/>
 78         <!-- "自动登录"多选框,黑体字,右缩进5个像素,与"记住密码"按钮的顶部和右边对齐 -->
 79         <CheckBox 
 80             android:id="@+id/autoLogin" 
 81             android:layout_width="wrap_content" 
 82             android:layout_height="wrap_content" 
 83             android:text="自动登录" 
 84             android:textColor="#000000"          
 85             android:layout_marginRight="5dip"
 86             android:layout_alignParentTop="true" 
 87             android:layout_alignParentRight="true"/>
 88     </RelativeLayout>
 89     <!-- "登录"按钮,重心垂直居中,距顶部和底部3个像素,左右扩充80个像素 -->
 90     <Button 
 91         android:id="@+id/login_bt"
 92         android:text="登  录 "
 93         android:paddingTop="3dip"
 94         android:paddingBottom="3dip"
 95         android:paddingLeft="80dip"
 96         android:paddingRight="80dip"       
 97         android:layout_width="wrap_content"    
 98         android:layout_height="wrap_content"        
 99         android:layout_gravity="center_horizontal"/>  
100     <!-- 绝对布局,"隐身登录"按钮和"开机振动"按钮以下部分,距顶部3个像素 -->
101     <RelativeLayout
102         android:id="@+id/relativeLayout1"
103         android:layout_width="fill_parent"
104         android:layout_height="fill_parent" 
105         android:layout_marginTop="3dip" >
106         <!-- "隐身登录"按钮,左缩进5个像素,黑字体,选中状态 -->
107         <CheckBox             
108             android:id="@+id/hidingLogin" 
109             android:layout_width="wrap_content" 
110             android:layout_height="wrap_content"
111             android:layout_marginLeft="5dip"
112             android:text="隐身登录" 
113             android:textColor="#000000"
114             android:checked="true"/>
115          <!-- "开机振动"按钮,右缩进5个像素,黑字体,选中状态 ,与"隐身登录"按钮的顶部和右边对齐-->
116         <CheckBox 
117             android:id="@+id/startVibrate" 
118             android:layout_width="wrap_content" 
119             android:text="开机振动" 
120             android:layout_marginRight="5dip"
121             android:textColor="#000000"
122             android:layout_height="wrap_content" 
123             android:layout_alignParentTop="true" 
124             android:layout_alignParentRight="true"/> 
125         <!-- "接收群消息"按钮,左缩进5个像素,黑字体,选中状态 ,在"隐身登录"按钮的下面-->
126         <CheckBox 
127             android:id="@+id/receiveGroupMessage" 
128             android:layout_width="wrap_content" 
129             android:text="接收群消息" 
130             android:layout_marginLeft="5dip"
131             android:textColor="#000000"
132             android:layout_height="wrap_content" 
133             android:layout_below="@id/hidingLogin"
134             android:checked="true"/>
135         <!-- "静音登录"按钮,右缩进5个像素,黑体字,选中状态,在"开机振动"按钮的下面,靠右 -->
136         <CheckBox 
137             android:id="@+id/silenceLogin" 
138             android:textColor="#000000" 
139             android:layout_width="wrap_content" 
140             android:text="静音登录" 
141             android:layout_marginRight="5dip"
142             android:layout_height="wrap_content" 
143             android:layout_below="@+id/startVibrate" 
144             android:layout_alignParentRight="true"
145             android:checked="true"/>
146         <!-- "菜单"按钮,距离底部2个像素,上下扩充3个像素,左右扩充20个像素,与"接收群消息"按钮左对齐,底部对齐 -->
147         <Button 
148             android:id="@+id/menu" 
149             android:layout_width="wrap_content" 
150             android:layout_height="wrap_content" 
151             android:text="菜  单" 
152             android:paddingTop="3dip"
153             android:paddingBottom="3dip"
154             android:paddingLeft="10dip"
155             android:paddingRight="10dip"  
156             android:layout_marginBottom="2dip"
157             android:layout_alignParentBottom="true" 
158             android:layout_alignLeft="@+id/receiveGroupMessage"/>     
159     </RelativeLayout>
160 </LinearLayout>

源码下载地址:QQUiDemo.rar 

 

转载于:https://www.cnblogs.com/yangyu20121220/archive/2012/08/19/2646736.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新造车公司背后的「资本大佬」

来源&#xff1a;电动汽车观察家&#xff08;ID&#xff1a;evobserver&#xff09;为了代表行业全貌&#xff0c;我们既分析光鲜靓丽的头部企业&#xff0c;也涉及比较不知名、甚至陷入舆论漩涡的一些企业&#xff0c;共十家代表企业资金的来源分析。1、蔚来汽车过往融资成绩&…

MySQL流浪记(一)—— 初步认识数据库的内涵

认识数据库 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内、有组织、可共享、统一管理的大量数据的集合。可以将数据库视为一个电子化的文件柜&#xff0c;用户可以对文件中的数据进行新增、查询、更新、删除等操作。 数据库是一个按数据结…

一篇文章搞懂数据仓库:元数据分类、元数据管理

目录 1、业务元数据 2、技术元数据 3、管理元数据 4、小编有话 1、业务元数据 描述 ”数据”背后的业务含义 主题定义&#xff1a;每段 ETL、表背后的归属业务主题。 业务描述&#xff1a;每段代码实现的具体业务逻辑。 标准指标&#xff1a;类似于 BI 中的语义层、数仓…

MEMS传感器科普文

来源&#xff1a;MEMS技术MEMS 的全称是微型电子机械系统&#xff0c;利用传统的半导体工艺和材料&#xff0c;集微传感器、微执行器、微机械机构、信号处理和控制电路、高性能电子集成器件、接口、通信和电源等于一体的微型器件或系统。具有小体积、低成本、集成化等特点。MEM…

silverlight 缺少对象错误

如果你的silverlight程序用vs调试时候运行良好,没有错误.你满怀欣喜的发布到iis上,一浏览,跳出个对话框,告诉你缺少对象.那么请不要慌张,你应该检查一下,你发布silverlight程序到iis的时候,有没有设置MIME类型,如果忘了设置,赶紧设置上吧,方法如下: 打开iis管理器,在网站上右键…

NFS服务器原理、搭建、配置

目录 NFS服务简介 什么是NFS&#xff1f; NFS挂载原理&#xff1a; RPC与NFS通讯原理&#xff1a; NFS客户端和NFS服务器通讯过程&#xff1a; Linux下NFS服务器部署 NFS服务所需软件及主要配置文件&#xff1a; 服务端安装NFS服务步骤&#xff1a; NFS客户端挂载配置…

MySQL流浪记(二)—— MySQL介绍及其特性

MySQL介绍 MySQL是一个关系型数据库&#xff0c;是一个开放源码的关系型数据库管理系统&#xff0c;原开发者位瑞典的MySQL AB公司&#xff0c;该公司于2008年被昇阳为系统&#xff08;Sun&#xff09;收购&#xff0c;2009年&#xff0c;甲骨文公司&#xff08;Oracle&#xf…

学习AutoIt

学习AutoIt转载于:https://www.cnblogs.com/bull_think/archive/2012/08/21/2649839.html

2021年03月-程序员薪资分布,看看你拖后腿了吗?

程序员工资是不确定的&#xff0c;要根据程序员的历、能力、工作经验、是否刚毕业、工种&#xff0c;工资是不一样的&#xff0c;还与地域和公司有关&#xff0c;但是总的来说&#xff0c;程序员工资都是很高的&#xff0c;是很多人都羡慕的职位。 那么程序员的薪资到底多高呢…

Science:领导决策的计算和神经生物学基础

来源&#xff1a;思影科技摘要&#xff1a;最近&#xff0c;来自苏黎世大学的Micah G. Edelson等人在SCIENCE上发文&#xff0c;他们将基于知觉和价值决策的模型结合起来&#xff0c;以评估被试对每一个决策行为的个人效用&#xff0c;从而梳理出选择领导或服从的潜在动机。最近…

tar命令集合(详解)

tar 命令可以将许多文件一起保存至一个单独的磁带或磁盘归档&#xff0c;并能从归档中单独还原所需文件。 示例 以test文件为例 压缩命令 tar -cvf test.tar test test1解压命令 tar -xvf test.tar主操作模式: -A, --catenate, --concatenate 追加 tar 文件至归档 -c, --…

一个薪资double的捷径:自动化简历内推工具

最近&#xff0c;小编在处理简历时&#xff0c;发现大量简历需要一个个打开文件&#xff0c;复制姓名、邮箱、电话号码、学历等关键信息&#xff0c;效率特别低且部分文件无法直接复制。于是&#xff0c;小编便写了文件阅读工具的脚本&#xff0c;支持文件格式有&#xff1a;do…

美国韩国科学家纷纷开发出电子机器人“皮肤”,据称具有比人类更好的触觉...

来源&#xff1a;机器人创新生态摘要&#xff1a;我们已经听说过柔性电子“皮肤”可以让机器人或假肢具有类似人类的触觉。然而&#xff0c;现在德克萨斯大学阿灵顿分校的科学家们声称他们开发的“皮肤”比具有比人类更好的触觉敏感。由Zeynep ?elik-Butler教授领导的团队创建…

解决FileUpload控件上传大文件被拒问题时

在使用Asp.Net自带的服务器端控件Fileupload上传文件时&#xff0c;如果上传的文件比较大&#xff0c;可能会遇到服务器的拒绝服务攻击&#xff0c;此时可以通过在<system.web>中添加&#xff1a; <httpRuntime maxRequestLength"2097151" executionTimeout…

MySQL流浪记(三)—— Linux安装MySQL数据库5.7.30(亲测有效3分钟即可)

下载 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/5.7.html#downloads 解压 tar -xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gztar命令集合&#xff08;详解&#xff09; 将安装包进行移动并重命名&#xff08;需要在root权限下进行&#xff09;。 m…

爬虫神器Requests: 让 HTTP 服务人类

Requests 唯一的一个非转基因的 Python HTTP 库&#xff0c;人类可以安全享用。 警告&#xff1a;非专业使用其他 HTTP 库会导致危险的副作用&#xff0c;包括&#xff1a;安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。 loook&#xff0c;这就是…

ANSI/UTF-8/UCS2(UTF-16),以及回车换行

最近遇到一个linux 平台上invisible character (0x1d)引起的数据装载失败问题&#xff0c;正好借此机会整理一下字符编码的相关知识。 回车/换行&#xff1a; 顾名思义&#xff0c;回车和换行是两个不同的控制字符: -回车(Carriage Return)即\r&#xff0c;ascii码13(0x0d)&am…

自动驾驶的大脑——芯片简介

来源&#xff1a;智车科技汽车电子发展初期以分布式ECU架构为主流&#xff0c;芯片与传感器一一对应&#xff0c;后来&#xff0c;中心化架构DCU、MDC逐步成为了发展趋势&#xff1b;随着汽车辅助驾驶功能渗透率越来越高&#xff0c;传统CPU算力不足过去&#xff0c;在自动驾驶…

MySQL流浪记(四)—— DDL和DML区别与介绍

DDL与DML的区别 DDL&#xff1a;数据定义语言&#xff0c;对于数据库、表、图、索引等进行操作。 具体操作有&#xff1a;CREATE&#xff08;创建&#xff09;、ALTER&#xff08;修改&#xff09;、DROP/TRUNCATE&#xff08;删除&#xff09; DML&#xff1a;数据操纵语言&am…

数据仓库面试题集锦(附答案和数仓知识体系)

【数据仓库系列文章 - 传送门】 一篇文章搞懂数据仓库&#xff1a;三种事实表&#xff08;设计原则&#xff0c;设计方法&#xff09;一篇文章搞懂数据仓库&#xff1a;三种事实表&#xff08;设计原则&#xff0c;设计方法、对比&#xff09;_不吃西红柿-CSDN博客_事实表三种…