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),使得开发 ...
随机推荐
- 关于content-type","application/x-www-form-urlencoded;charset=utf-8"的说明
在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型. 下边是说明: application/x-www-form-urlen ...
- md语法之行内代码和代码片续集
md语法之行内代码和代码片 一行之内嵌入一小段代码, 简称行内代码. 其方法为: 用撇号把代码围起来. 比如: import numpy as ny就可以了. 代码片的方法: 三个连续的撇号+pyth ...
- java时间段分成小段存储
package testThread; import java.text.ParseException; import java.text.SimpleDateFormat; import java. ...
- Deep Learning 25:读论文“Network in Network”——ICLR 2014
论文Network in network (ICLR 2014)是对传统CNN的改进,传统的CNN就交替的卷积层和池化层的叠加,其中卷积层就是把上一层的输出与卷积核(即滤波器)卷积,是线性变换,然后再 ...
- linux建立一个快捷方式,连接到另一个目录
sudo ln -s 源目录 目标快捷方式比如你要在/etc下面建立一个叫LXBC553的快捷方式,指向/home/LXBC,那就是sudo ln -s /home/LXBC /etc/LXBC553
- 【crawler】log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
This Short introduction to log4j guide is a little bit old but still valid. That guide will give you ...
- 机器学习之决策树熵&信息增量求解算法实现
此文不对理论做相关阐述,仅涉及代码实现: 1.熵计算公式: P为正例,Q为反例 Entropy(S) = PLog2(P) - QLog2(Q); 2.信息增量计算: Gain(S,Sv) = E ...
- iOS -初识UIKit
UIKit框架:UI界面上每一个元素都是一个对象 一张图片是UIimageView对象 一段文字是一个UILabei对象 一个按钮是一个UIButton对象 搭建UI界面的步骤 利用类创建对象 将对象 ...
- mysql5.7碰到的坑
日志输出时区问题 输出日志有这些信息2016-08-16T02:23:09.831827Z 112241 [Note] Aborted connection 112241 to db: 'test' ...
- [css]水平垂直居中的方法
1.top:cale(50% - 2rem); left:cale(50% - 2rem);