Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy-阿里云开发者社区

开发者社区> 杰克.陈> 正文

Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy

简介: 原文: Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy 上一篇:Android菜鸟的成长笔记(2)——第一个Android应用 我们前面已经做了第一个Android应用程序,虽然有点像QQ的登录界面,但是很多地方还是很难看,这一篇咱们来将这个界面做成一个标准的商业界面,并一起来了解Android中的代码运行的原理。
+关注继续查看
原文: Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy

上一篇:Android菜鸟的成长笔记(2)——第一个Android应用

我们前面已经做了第一个Android应用程序,虽然有点像QQ的登录界面,但是很多地方还是很难看,这一篇咱们来将这个界面做成一个标准的商业界面,并一起来了解Android中的代码运行的原理。

好吧,咱们开始吧,首先启动模拟器,为了让咱们的界面和QQ的登录界面一样我下载了一个QQ的apk文件,下面咱们将这个apk安装到我们的模拟器上,看看效果。

怎么将apk安装到我们的模拟器上面呢?先给大家介绍一个SDK自带的工具adb

如下图所示这个工具在sdk/platform-tools/下面



好吧直接双击怎么一闪而过呢?这是因为我们没有在环境变量里面配置,还记得前面配置JDK的环境变量吗?我们暂时先不配置

按住  开始+R  出现如下输入框,输入cmd然后确定

 

好了,我们现在进入到window的控制台了,如下图所示:



在这里用dos下面的命令:

D:  到D盘

cd xxx 到xxx目录


下面开始正式安装我们的apk文件,我将QQ的apk文件放在D盘的根目录

将apk文件安装到模拟器


可以看到Success这说明我们已经安装成功了,下面我们来打开模拟器上的QQ并到登录界面


其实有一种很好的学习方式就是抄袭,好吧,如果你认同我的观点下面我们就来抄袭一下QQ是怎么做的

在抄袭别人之前还必须有一定的技术,不然抄不过来的哦。呵呵,开个玩笑,其实这个很简单。再给大家介绍一个SDK自动的工具。

关于这个工具的详细请看我的另一篇博文:关于HierarchyViewer的使用

好了启动HierarchyViewer之后如图,我们选择QQ安装包,然后点击Load View Hierarchy菜单


我们可以找到我们想要的界面的组件,比如上面的QQ头像


好吧下面我们就一个一个仿照QQ的组件来修改我们的组件,修改好的xml布局文件如下

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
	android:background="#eeeeee">
	<ImageView
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:src="@drawable/login_default_avatar"
	    android:layout_marginTop="20dip"
	    android:background="@drawable/qzone_bg_user_avatar"/>
	<RelativeLayout 
	    android:layout_marginTop="13dip"
	    android:layout_width="match_parent"
	    android:layout_height="match_parent">
	    <RelativeLayout
	        android:id="@+id/input_edit_text"
	        android:layout_centerHorizontal="true"
	        android:layout_width="270dip"
	        android:layout_height="100dip"
	        android:paddingTop="15dip"
	        android:background="@drawable/login_input">
	        <LinearLayout 
	            android:id="@+id/input_account"
	            android:layout_width="match_parent"
	            android:paddingLeft="15dip"
	            android:layout_height="40dip">
		        <TextView 
		            android:layout_width="40dip"
		            android:textColor="#cccccc"
		            android:layout_height="wrap_content"
		            android:text="@string/account"/>
		        <EditText 
		            android:layout_width="0dip"
		            android:layout_height="40dip"
		            android:layout_weight="1"
		            android:background="@null"/>
	        </LinearLayout>
	        <ImageView 
	            android:id="@+id/input_center_line"
	            android:layout_below="@id/input_account"
	            android:layout_width="match_parent"
	            android:layout_height="1dip"
	            android:background="@drawable/qb_tenpay_trans_records_open"/>
	        <LinearLayout 
	            android:layout_below="@id/input_center_line"
	            android:paddingLeft="15dip"
	            android:layout_width="match_parent"
	            android:layout_height="40dip">
		        <TextView 
		            android:layout_width="40dip"
		            android:textColor="#cccccc"
		            android:layout_height="wrap_content"
		            android:text="@string/password"/>
		        <EditText 
		            android:layout_width="0dip"
		            android:layout_height="40dip"
		            android:layout_weight="1"
		            android:background="@null"/>
	        </LinearLayout>
	    </RelativeLayout>
	    <LinearLayout
	        android:layout_below="@id/input_edit_text"
	        android:layout_marginTop="20dip"
	        android:layout_width="match_parent"
	        android:layout_height="wrap_content"
	        android:gravity="center">
	        <Button 
	            android:layout_width="270dip"
	            android:layout_height="40dip"
	            android:text="@string/login_button"
	            android:background="@drawable/login_button_nor"
	            />
	    </LinearLayout>
	</RelativeLayout>
</LinearLayout>

现在的界面如下:



这个界面和真真的QQ界面还有点不同的就是上面的标题myFirstApp,怎么去掉这个标题呢?

有关主题和去掉actionBar详细请看我的另一篇博文:Android中去掉标题的方法总结

我直接用第二种方法,在AndroidMainfest.xml文件中的<appliaction>中添加如下属性:

android:theme="@android:style/Theme.NoTitleBar" 

现在的运行效果如下:



这个界面比上一个界面好多了吧!下一篇将介绍实现界面的主要组件及使用方法。

源代码下载:http://download.csdn.net/detail/lxq_xsyu/6762549

下一篇: 

Android菜鸟的成长笔记(4)——你真的理解了吗?


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask
为什么要是用Callable和Future Runnable的局限性 Executor采用Runnable作为基本的表达形式,虽然Runnable的run方法能够写入日志,写入文件,写入数据库等操作,但是它不能返回一个值,或者抛出一个受检查的异常,有些需要返回值的需求就不能满足了。
1330 0
Linux学习笔记之档案权限与目录配置
Linux学习笔记之档案权限与目录配置一. 档案权限与目录配置用户的属性信息: /etc/passwd用户的密码信息: /etc/shadow组的信息:    /etc/group 每个用户都有唯一的UID供系统识别sudo -i      输入密码切换到root s...
607 0
Linux学习笔记之目录配置
Linux学习笔记之目录配置一.目录配置相关目录说明 /bin   二进制文件 /boot    系统启动文件(内核的初始化文件等) /dev    设备文件(硬盘等) /etc    配置文件 /home    用户家目录 /lib    链接库文件(相当于windows里的.
783 0
Spring Security笔记:自定义登录页
以下内容参考了 http://www.mkyong.com/spring-security/spring-security-form-login-example/ 接上回,在前面的Hello World示例中,Spring Security为我们自动生成了默认登录页,对于大多数项目而言,如此简单的...
934 0
笔试题目记录
32位机器上,以下结构的sizeof(P)为 struct A { int a; char b; int c; char d; } struct P { struct A w[2]; short b; struct A* p; } /*考察结构体对齐和填充: 结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如果不是,编译器会自动在成员间填充。
691 0
Spring Security笔记:使用BCrypt算法加密存储登录密码
在前一节使用数据库进行用户认证(form login using database)里,我们学习了如何把“登录帐号、密码”存储在db中,但是密码都是明文存储的,显然不太讲究。这一节将学习如何使用spring security3新加入的bcrypt算法,将登录加密存储到db中,并正常通过验证。
1621 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 KEEP 规定在数据集中保留的变量 DROP 规定在数据集中删除的变量 ARRAY 定义一个数组 RENAME
1431 0
Spring Security笔记:登录尝试次数限制
今天在前面一节的基础之上,再增加一点新内容,默认情况下Spring Security不会对登录错误的尝试次数做限制,也就是说允许暴力尝试,这显然不够安全,下面的内容将带着大家一起学习如何限制登录尝试次数。
1321 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载