50 Android Hacks阅读笔记
Hack 1.善用weightSum和layout_weight。
问题提出:尝试做一个button的宽度是父View的一半的效果。
关键词:weightSum = 1 , layout_weight=0.5
Hack 2.常用include和ViewStub
问题提出:如何减少复杂界面的绘制时间。
关键词:include复用,外部定义layout_width,layout_height;ViewStub占位,VISIBLE设置
Hack 3.自定义ViewGroup
问题提出:如何使用自定义ViewGroup,如何计算子View的位置和大小
关键词:自定义View,attrs使用
Hack 4.使用Preference
Android提供了一个PreferenceActivity和preferenceFragment等类来简化了Preference的实现,既然如此,简单的Preference可以使用它们实现,还可以通过继承一些Preference下属类,比如DialogPreference来实现更加灵活的配置
关键词:Preference,自定义Preference
Hack 5.使用TextSwitcher/ImageSwitcher
问题提出:如何快速为多文本切换添加动画效果?(同理Image切换)
关键词:Switcher
Hack 6.为ViewGroup下属的子View添加统一顺序执行的动画效果
问题提出:为某个拥有多个(相似)子View的ViewGroup的子View添加动画效果
关键词:LayoutAnimationController,ListView等
Hack 7.canvas绘图
自定义View的另一种重要部分,使用Canvas在屏幕上绘制图形或是图像,自定义动作等
关键词:Canvas
Hack 8.创作Ken Burns效果
问题提出:如何创建类似幻灯片切换的效果
关键词:AnimatorSet,ObjectAnimator
Hack 9.不用EditText来输入要被检验的Data
问题提出:要验证一个用户输入的时间格式比较麻烦,用Button检测输入行不行?
关键词:为控件自定义background
Hack 10.格式化TextView的文本显示
问题提出:如何实现在TextView下显示简单的HTML语法,或是为部分文本加入前景色或是背景色
关键词:SpannableString,BackgroundColorSpan,ForegroundColorSpan
Hack 11.制造发光文字
问题提出:

关键词:Typeface,assets/fonts,XML(shadowColor,shadowRadius,shadowDx,shadowDy)
示例:
public class LedTextView extends TextView {
public LedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
AssetManager assets = context.getAssets();
final Typeface font = Typeface.createFromAsset(assets,"fonts/digital-7.ttf");
setTypeface(font);
}
}
Hack 12.圆角背景
使用drawable不仅能用png图片(特别是现在ic_launcher是mipmaps下的),还能使用xml自定义一些图形和状态显示,比如press,select
关键词:drawable,xml( shape corners),ShapeDrawables
Hack 13.在onCreate中获取View的宽和高
问题提出:在onCreate调用完成之前,layout方法不会被调用,因此在onCreate是无法获取View的宽和高的
关键词,view.post,runable,getWidth,getHeight
Hack 16.设定Toast位置
关键词:延迟show,设置gravity
Hack.18.使用ProGuard移除Log代码
关键词:AndroidStudio内置使用了ProGuard
Hack 20.使用Model-View-Presenter模式
关键词:MVP
Hack 21.SyncAdapter的使用
关键词:Service,Provider,SyncAdapter
Hack 27.通过Delegate在Activity和Adapter上同步设置
关键词:第三方Delegate,Adapter,View
hack 41 .ORMLite数据库
关键词:ORM数据库在复杂情况下替代SQLite
Hack 43绑定一系列的数据库操作
关键词:applyBatch,加速大范围频繁database操作
50 Android Hacks阅读笔记的更多相关文章
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.4——更新新版本的Gradle
问题: 你需要更新应用的Gradle版本. 解决方案: 生成一个新的wrapper,或者直接修改属性文件(.properties). 讨论: Android Studio包含了一个Gradle的分发. ...
- 《第一行代码--Android》阅读笔记之界面设计
1.单位dp.dip.sp.pt.px.in.mm 这里引用StackOverFlow上的一个解答: px is one pixel. sp is scale-independent pixels. ...
- 《第一行代码--Android》阅读笔记之Activity
1.BaseActivity里面可以干什么 定义一个Context定义一个TAG 记录当前的Activity名字getClass().getSimpleName(); 2.Activity里面的几个重 ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.2——DSL文档
问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的AP ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.1——推荐配置
问题: 你想要提高Gradle的构建效率. 解决方案: 使用下面推荐的技术组合. 讨论: 首先,这里没有可以影响app表现的建议.有很多你可以做的事来提高app,很多都和Android的混淆工具有关. ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.4——使用Espresso测试Activity
问题: 你想要使用Google的Espresso测试Activity. 解决方案: 在Gradle配置里面增加Espresso,书写测试脚本. 讨论: Espresso测试库已经被添加进“Androi ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试
问题: 你想要使用Robotium库测试activity. 解决方案: 增加Robotium依赖,编写自己的测试脚本. 讨论: Android Test Support Library提供类可以操作a ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.2——使用Android Testing Support Library进行测试
问题: 你想要测试app的Android组件. 解决方案: 使用新的测试类实现JUnit风格的测试. 讨论: 测试像activities,services等的Android组件,需要将app部署到连接 ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.1——单元测试
问题: 你想要测试app中的非android部分. 解决方案: 可以使用Android Studio1.1里面增加的单元测支持和Android的Gradle插件. 讨论: ADT插件只支持集成测试,并 ...
随机推荐
- sqlserver内存释放心得
SQL Server 2008 或者R2的默认内存分配是2147483647MB, 差不多算是无穷大,对于系统内存的管理策略是有多少占多少.SQLserver会把所有处理过的SQL操作缓存在内存里,这 ...
- 转: sql server2008 字段类型详解
bit 整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型,如果能 ...
- 关于SQLServer2008数据如何导入SQL2005的解决办法,高版本数据导入低版本中。
最近需要把SqlServer2008 的数据库导入sqlserver2005 中.直接备份还原肯定不行.后来想到可以生成脚本执行sql语句,并选择数据可以一同进行执行. 点击右键--->任务-- ...
- wdlinux 一键安装
Linux系统(支持CentOS 6.X/7.X.RedHat 6.X.Ubuntu 12.04): ssh登录服务器,执行如下操作即可,需root用户身份安装 wget http://dl.wdli ...
- struts2:遍历自定义字符串数组,遍历Action实例所引用对象中的数组
在struts2:OGNL表达式,遍历List.Map集合:投影的使用一文中已经讲述了OGNL遍历List.Map集合等功能. 本文简单写一个遍历数组的示范程序. 1. 遍历自定义字符串数组 < ...
- HBase - Phoenix剖析
1.概述 在<Hadoop-Drill深度剖析>一文当中,给大家介绍了Drill的相关内容,就实时查询来说,Drill基本能够满足要求,同时还可以做一个简单业务上的聚合,如果在使用Hive ...
- exerunexplorer.exe
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- script标签块的独立性与共享性
块间独立,变量与方法共享 每个script块之间不会相互影响,某个script块出错,不会影响其它块的运行 块之间定义的非局部变量和方法可以共享,(其实只是共享了全局变量和方法) <script ...
- 解决Spring+Quartz无法自动注入bean问题
问题 我们有时需要执行一些定时任务(如数据批处理),比较常用的技术框架有Spring + Quartz中.无奈此方式有个问题:Spring Bean无法自动注入. 环境:Spring3.2.2 + Q ...
- linux下 C++ 读取mat文件 MATLAB extern cyphon scipy 未完待续
1.使用Matlab的C扩展,需要用户安装matlab. g++ -L/media/exsoftware/MATLAB/R2013b/bin/glnxa64 -Wl,-rpath,/media/exs ...