Android UI布局 —— 仿QQ登录界面(转载)

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

1.界面预览图(这个是模拟器上面的预览图):
 

2.运行结果截图(这个是模拟器运行时的截图):
 

大家肯定发现了,预览图和实际运行的结果是有很大差别的。
3.大纲视图(Eclipse下截的图,这个直白行了):
 

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

<?xml version="1.0" encoding="utf-8"?>
<!-- 插入整个布局的背景图片 -->
<LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"  
    android:background="@drawable/back"  
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"> 
    <!-- QQ登录界面最上面的图片 -->
           <ImageView 
            android:id="@+id/image"
            android:src="@drawable/qq"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />  
    <!-- 水平布局,包括QQ头像和输入信息的账号和密码 -->
    <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">    
            <!-- QQ头像,插入图片,重心垂直居中,四周扩充3个像素 -->          
            <ImageView 
                    android:id="@+id/head"
                    android:src="@drawable/head"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:layout_gravity="center_vertical"
            /> 
            <!-- 表格布局,包括账号和密码 -->
            <TableLayout 
                    android:id="@+id/loginInfo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:stretchColumns="1">
                    <!-- 表格的第一行,账号文本和输入框,黑色粗体字,重心靠右,四周扩充5个像素 -->
                    <TableRow>
                            <!-- "账号"文本 -->
                            <TextView 
                                    android:text="账号:"                                    
                                    android:textStyle="bold"
                                    android:textColor="#000000"
                                    android:gravity="right"    
                                    android:padding="5dip"                                          
                            />                               
                            <!-- "账号"输入框,文本超出TextView的宽度的情况下,出现横拉条   -->
                            <EditText 
                                    android:id="@+id/username"
                                    android:scrollHorizontally="true"                                     
                            />
                    </TableRow>
                    <!-- 表格的第二行,密码和密码输入框,黑色粗体字,重心靠右,扩充5个像素 -->
                    <TableRow>
                            <!-- "密码"文本 -->
                            <TextView 
                                    android:text="密码:"                                    
                                    android:textStyle="bold"
                                    android:textColor="#000000"
                                    android:gravity="right"    
                                    android:padding="5dip"                                 
                            />
                            <!-- "密码"输入框;文本超出TextView的宽度的情况下,出现横拉条  -->
                            <EditText 
                                    android:id="@+id/username"
                                    android:password="true"
                                    android:scrollHorizontally="true"  
                            />
                    </TableRow>
            </TableLayout>            
    </LinearLayout>
    <!-- 相对布局,"记住密码"按钮和"自动登录"按钮 -->
    <RelativeLayout 
            android:id="@+id/loginSet"    
            android:layout_height="wrap_content" 
            android:layout_width="fill_parent">
            <!-- "记住密码"多选框,黑体字,左缩进5个像素,选中状态 -->
        <CheckBox                 
                android:id="@+id/rememberPassword" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:text="记住密码" 
                android:textColor="#000000"
                android:checked="true"
                android:layout_marginLeft="5dip"
                />
        <!-- "自动登录"多选框,黑体字,右缩进5个像素,与"记住密码"按钮的顶部和右边对齐 -->
        <CheckBox 
                android:id="@+id/autoLogin" 
                android:layout_width="wrap_content" 
                android:text="自动登录" 
                android:textColor="#000000"
                android:layout_height="wrap_content" 
                android:layout_marginRight="5dip"
                android:layout_alignParentTop="true" 
                android:layout_alignParentRight="true"/>            
    </RelativeLayout>
    <!-- "登录"按钮,重心垂直居中,距顶部和底部3个像素,左右扩充80个像素 -->
    <Button 
            android:id="@+id/login_bt"
            android:text="登  录 "
            android:paddingTop="3dip"
            android:paddingBottom="3dip"
            android:paddingLeft="80dip"
            android:paddingRight="80dip"            
            android:layout_width="wrap_content"    
            android:layout_height="wrap_content"            
            android:layout_gravity="center_horizontal" 
            />           
    <!-- 绝对布局,"隐身登录"按钮和"开机振动"按钮以下部分,距顶部3个像素 -->        
    <RelativeLayout 
            android:id="@+id/loginSet"    
            android:layout_width="fill_parent"
            android:layout_marginTop="3dip" 
            android:layout_height="fill_parent">
            <!-- "隐身登录"按钮,左缩进5个像素,黑字体,选中状态 -->
        <CheckBox                 
                android:id="@+id/hidingLogin" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dip"
                android:text="隐身登录" 
                android:textColor="#000000"
                android:checked="true"
                />
        <!-- "开机振动"按钮,右缩进5个像素,黑字体,选中状态 ,与"隐身登录"按钮的顶部和右边对齐-->
        <CheckBox 
                android:id="@+id/startVibrate" 
                android:layout_width="wrap_content" 
                android:text="开机振动" 
                android:layout_marginRight="5dip"
                android:textColor="#000000"
                android:layout_height="wrap_content" 
                android:layout_alignParentTop="true" 
                android:layout_alignParentRight="true"/>    
        <!-- "接收群消息"按钮,左缩进5个像素,黑字体,选中状态 ,在"隐身登录"按钮的下面-->
        <CheckBox 
                android:id="@+id/receiveGroupMessage" 
                android:layout_width="wrap_content" 
                android:text="接收群消息" 
                android:layout_marginLeft="5dip"
                android:textColor="#000000"
                android:layout_height="wrap_content" 
                android:layout_below="@id/hidingLogin"
                android:checked="true"/>
        <!-- "静音登录"按钮,右缩进5个像素,黑体字,选中状态,在"开机振动"按钮的下面,靠右 -->
        <CheckBox 
                android:id="@+id/silenceLogin" 
                android:textColor="#000000" 
                android:layout_width="wrap_content" 
                android:text="静音登录" 
                android:layout_marginRight="5dip"
                android:layout_height="wrap_content" 
                android:layout_below="@+id/startVibrate" 
                android:layout_alignParentRight="true"
                android:checked="true"/>
        <!-- "菜单"按钮,距离底部2个像素,上下扩充3个像素,左右扩充20个像素,与"接收群消息"按钮左对齐,底部对齐 -->
        <Button 
                android:id="@+id/menu" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="菜  单" 
                android:paddingTop="3dip"
                    android:paddingBottom="3dip"
                    android:paddingLeft="10dip"
                    android:paddingRight="10dip"  
                    android:layout_marginBottom="2dip"
                android:layout_alignParentBottom="true" 
                android:layout_alignLeft="@+id/receiveGroupMessage"/>
    </RelativeLayout>           
</LinearLayout>

其中,插入了一个背景图,正因为有这个背景图,才把界面衬托得很好。另外,还有两个图片。
我也把源代码上传上去,给大家参考一下,有哪些不足之处请多多赐教,毕竟还没有做过什么项目,谢谢大家的浏览和意见。
详情请移步到我的帖子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOT物联网小镇

赏点银子去植发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值