Android新手踩到的一些雷,记录一下~
这两天在搞一个android的app ,由于是新手,注定要踩很多坑。
这里是一些遇到的一些问题,网上各种找答案,感谢各位博主。这里记录一下,留待以后再看。
1. android layout_weight 的问题
layout_weight 布局跟空间的 layout_height (layout_width) 有很大关系;
第一种情况,如果将空间的宽或者是高设置为wrap_content,系统会自己给定控件默认的宽度和高度,再将剩下的空间按照比重的方式进行分配。
第二种情况,如果将空间的宽或者是高设置为match_parent, 这个相对复杂一点,控件首先默认都会填充满屏幕,此时空间的计算则参考此博文的计算方法,博主的理解非常深刻,一看即明了!
2. android 中的度量单位 sp dp pt px (来自这里)
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为
160,这时dp和sp和px是一 样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度 设成160px,在密度为320
的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动 将width属性值设置成 320px的。也就是160 * 320 / 160。其中320 / 160可
称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
3. Android Studio 的相关问题学习,Gradle 编译实在是慢啊,有啥好的解决方案么?
推荐来自简书的教程, 在这里去瞅瞅吧!
来自SagementFault的教程,也不错,链接在这里.
4. Android 开发中Activity的启动问题,以及逻辑处理问题。
在开发中,常常遇到一个典型问题:就是你在为按钮或者或者某些空间添加事件,通过Intent启动一系列新的Activity的时候,通过一些列的操作。。。再当你按系统的返回按钮的时候,他会一一罗列出你之前进入过的Activity;
举个例子:比如你进行注册操作,可以需要输入一些个人相关信息1之后之后,注册成功了,进行了登陆界面2,登陆之后到达APP主页面3,此时你想推出app,按照一般逻辑,你想按一下返回键(普遍用两下)退出app,然而,
如果你不做丝毫的处理,结果肯定回震惊你!那就是你按返回键的时候,系统会一一罗列出你之前的注册和登陆界面!这么看,是不是匪夷所思!所有有人说,android 总是不知道自己要返回到哪里去!
所以需要了解一下Activity的启动机制,帮你做一些工作,避免这种情况的出现!
以下是参考文章 1.Android总结篇系列:Activity启动模式(lauchMode)
5. 未完待续,给自己留个学习android的纪念。
Android新手踩到的一些雷,记录一下~的更多相关文章
- [Android新手区] SQLite 操作详解--SQL语法
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...
- [置顶]
xamarin android toolbar(踩坑完全入门详解)
网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...
- Android 系统搜索框(有浏览记录)
实现Android 系统搜索框(有浏览记录),先看下效果: 一.配置搜索描述文件 要在res中的xml文件加创建sreachable.xml,内容如下: <?xml version=" ...
- 学习新手给Android新手的一些学习建议
时间紧张,先记一笔,后续优化与完善. Shamoo做Android开辟已有一年了,对Android开辟也有一点点了解.上面就给Android新手说说我对Android浅面的意识和一点建议吧,知道的大牛 ...
- Android新手系列教程(申明:来源于网络)
Android新手系列教程(申明:来源于网络) 地址:http://blog.csdn.net/column/details/androidcoder666.html
- android(java) 开发过程中经验及总结记录
android(java) 开发过程中经验及总结记录
- 10个常见的Android 新手误区
在过去十年的移动开发平台中,作为资深的移动开发人员,我们认为Android平台是一个新手最广为人知的平台.它不仅是一个廉价的工具,而且有着良好的开发社区,以及从所周知的编程语言(Java),使得开发A ...
- Android代码混淆及项目发布方法记录
Android代码混淆及项目发布步骤记录 本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. Android代码混淆及项目发布步骤记录 一.清理 ...
- 常见的 Android 新手误区
在过去十年的移动开发平台中,作为资深的移动开发人员,我们认为Android平台是一个新手最广为人知的平台.它不仅是一个廉价的工具,而且有着良好的 开发社区,以及从所周知的编程语言(Java),使得开发 ...
随机推荐
- 高效的插入子节点DocumentFragment
DocumentFragment 对象 DocumentFragment 接口表示文档的一部分(或一段).更确切地说,它表示一个或多个邻接的 Document 节点和它们的所有子孙节点. Docume ...
- [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥)
[原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥) nohacks 发表于 2016-5-29 17:12:51 https:// ...
- ATC空管系统的实时控制软件系统分析
什么是ATC空管系统? 空中交通管制的目的是对航空器的空中活动进行有效的管理,维护空中交通秩序,保障空中交通畅通,保证飞行安全和提高飞行效率,防止航空器相撞,防止机场及其附近空域的航空器同障碍物相撞. ...
- Javascript实现二级select联动
1.js cities = new Object(); cities['河北省']=new Array('石家庄', '张家口市', '承德市', '秦皇岛市', '唐山市', '廊坊市', '保定市 ...
- 11.10 Taolu1234组信息汇总
团队名称: Taolu1234 团队选题: <餐厅到店点餐系统>WEB版 团队博客地址: http://www.cnblogs.com/queenjuan/ 团队GITHUB地址: htt ...
- nexus离线安装索引及一些问题
安装私服~~~ 整体流程: 服务器安装私服 配置私服(主要是安装索引) 本地maven配置指向私服 安装私服 win & linux 网上教程很多,不在阐述: 配置私服(及安装index) 1 ...
- 289. Game of Life -- In-place计算游戏的下一个状态
According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...
- gulp教程之gulp-uglify
简介: 使用gulp-uglify压缩javascript文件,减小文件大小. 1.安装nodejs/全局安装gulp/项目安装gulp/创建package.json和gulpfile.js文件 1. ...
- MVC MVP 和 MVVM的图示
一直对于这些什么MVC MVP 和 MVVM都是云里雾里的 完全分不清楚 感觉jq上也没怎么用过,理解也很片面,画几张图也许能够大体分清他们之间的区别. 1.MVC(Model-View-Contro ...
- web工程关于500错误
昨天一直被一个诡异问题困扰,解决了之后开心得的我连玩了一下午,哈哈哈哈哈哈哈哈-- 具体问题是这样的额,本地跑的贼正常,一发到测试服务器就报500错误,具体错误信息是. HTTP Status 50 ...