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插件只支持集成测试,并 ...
随机推荐
- Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了
作者:Glowin链接:https://zhuanlan.zhihu.com/p/22881223来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 原文地址:Google ...
- IPv6正则表达式
斯蒂芬·瑞恩写了一个非常有用的正则表达式,可用于匹配任何一个合法的IPv6地址.以下为正则表达式的代码: ^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|: ...
- string的+操作与StringBuilder对象
习惯在C#代码中写str+="xxx";这样代码的请注意啦,如果这种操作是针对单个变量作很多次叠加操作的,很有可能导致性能降低. 大家都知道string与StringBuilder ...
- [AYUI]QQ管家源码已经开源
(0-50元 黑色字体 享受AY 1周的 ayui 技术问答) (50-100元 绿色字体 享受AY 15天的 ayui 技术问答) (100-150元 蓝色字体 享受AY 20天的 ayui ...
- SQLServer公历转农历函数(1900年-2049年)
ALTER FUNCTION [dbo].[f_SysGetLunar]( @solarDay DATETIME) RETURNS varchar(20 ...
- 分布式代码管理 tortoisehg mercurial
下载客户端: https://bitbucket.org/tortoisehg/files/downloads mercurial客户端下载:http://mercurial.s ...
- WPF Window 服务安装
一.安装服务 1.已管理员的身份启动CMD 2.输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 回车 3.输入 InstallUtil.exe ...
- android 渐变展示启动屏
启动界面Splash Screen在应用程序是很常用的,往往在启动界面中显示产品Logo.公司Logo或者开发者信息,如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段 ...
- 【jquery】一款不错的音频播放器——Amazing Audio Player
前段时间分享了一款视频播放器,点击这里.今天介绍一款不错的音频播放器——Amazing Audio Player. 介绍: Amazing Audio Player 是一个使用很方便的 Windows ...
- 通过PowerShell获取Windows系统密码Hash
当你拿到了系统控制权之后如何才能更长的时间内控制已经拿到这台机器呢?作为白帽子,已经在对手防线上撕开一个口子,如果你需要进一步扩大战果,你首先需要做的就是潜伏下来,收集更多的信息便于你判断,便于有更大 ...