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)——你真的理解了吗?


目录
相关文章
|
Android开发 数据安全/隐私保护 开发者
Android自定义view之模仿登录界面文本输入框(华为云APP)
本文介绍了一款自定义输入框的实现,包含静态效果、hint值浮动动画及功能扩展。通过组合多个控件完成界面布局,使用TranslateAnimation与AlphaAnimation实现hint文字上下浮动效果,支持密码加密解密显示、去除键盘回车空格输入、光标定位等功能。代码基于Android平台,提供完整源码与attrs配置,方便复用与定制。希望对开发者有所帮助。
316 0
|
XML Java Android开发
Android自定义view之网易云推荐歌单界面
本文详细介绍了如何通过自定义View实现网易云音乐推荐歌单界面的效果。首先,作者自定义了一个圆角图片控件`MellowImageView`,用于绘制圆角矩形图片。接着,通过将布局放入`HorizontalScrollView`中,实现了左右滑动功能,并使用`ViewFlipper`添加图片切换动画效果。文章提供了完整的代码示例,包括XML布局、动画文件和Java代码,最终展示了实现效果。此教程适合想了解自定义View和动画效果的开发者。
563 65
Android自定义view之网易云推荐歌单界面
|
Android开发 开发者
Android企业级实战-界面篇-3
本文是《Android企业级实战-界面篇》系列的第三篇,主要介绍分割线和条形跳转框的实现方法,二者常用于设置和个人中心界面。文章通过具体代码示例展示了如何实现这两种UI组件,并提供了效果图。实现前需准备`dimens.xml`、`ids.xml`、`colors.xml`等文件,部分资源可参考系列第一、二篇文章。代码中详细说明了布局文件的配置,如分割线的样式定义和条形跳转框的组件组合,帮助开发者快速上手并应用于实际项目中。
193 1
|
XML Android开发 数据格式
Android企业级实战-界面篇-2
本文为《Android企业级实战-界面篇》系列第二篇,主要介绍三个UI模块的实现:用户资料模块、关注与粉丝统计模块以及喜欢和收藏功能模块。通过详细的XML代码展示布局设计,包括dimens、ids、colors配置文件的使用,帮助开发者快速构建美观且功能齐全的界面。文章结合实际效果图,便于理解和应用。建议配合第一篇文章内容学习,以获取完整工具类支持。
226 0
|
算法 Java Android开发
Android企业级实战-界面篇-1
本文详细介绍了Android企业级开发中界面实现的过程,涵盖效果展示、实现前准备及代码实现。作者通过自身经历分享了Android开发经验,并提供了`dimens.xml`、`ids.xml`、`colors.xml`和`strings.xml`等配置文件内容,帮助开发者快速构建规范化的UI布局。文章以一个具体的用户消息界面为例,展示了如何使用线性布局(LinearLayout)和相对布局(RelativeLayout)实现功能模块排列,并附带注意事项及使用方法,适合初学者和进阶开发者参考学习。
326 0
|
Web App开发 安全 程序员
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
512 1
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
1035 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
XML 数据可视化 Android开发
Android应用界面
Android应用界面中的布局和控件使用,包括相对布局、线性布局、表格布局、帧布局、扁平化布局等,以及AdapterView及其子类如ListView的使用方法和Adapter接口的应用。
485 0
Android应用界面
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
636 1
|
XML 数据可视化 Java
Android常见界面布局(详细介绍)
Android常见界面布局(详细介绍)
790 0
Android常见界面布局(详细介绍)

热门文章

最新文章