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阅读笔记的更多相关文章

  1. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.4——更新新版本的Gradle

    问题: 你需要更新应用的Gradle版本. 解决方案: 生成一个新的wrapper,或者直接修改属性文件(.properties). 讨论: Android Studio包含了一个Gradle的分发. ...

  2. 《第一行代码--Android》阅读笔记之界面设计

    1.单位dp.dip.sp.pt.px.in.mm 这里引用StackOverFlow上的一个解答: px is one pixel. sp is scale-independent pixels. ...

  3. 《第一行代码--Android》阅读笔记之Activity

    1.BaseActivity里面可以干什么 定义一个Context定义一个TAG 记录当前的Activity名字getClass().getSimpleName(); 2.Activity里面的几个重 ...

  4. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.2——DSL文档

    问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的AP ...

  5. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.1——推荐配置

    问题: 你想要提高Gradle的构建效率. 解决方案: 使用下面推荐的技术组合. 讨论: 首先,这里没有可以影响app表现的建议.有很多你可以做的事来提高app,很多都和Android的混淆工具有关. ...

  6. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.4——使用Espresso测试Activity

    问题: 你想要使用Google的Espresso测试Activity. 解决方案: 在Gradle配置里面增加Espresso,书写测试脚本. 讨论: Espresso测试库已经被添加进“Androi ...

  7. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.3——使用Robotium进行功能测试

    问题: 你想要使用Robotium库测试activity. 解决方案: 增加Robotium依赖,编写自己的测试脚本. 讨论: Android Test Support Library提供类可以操作a ...

  8. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.2——使用Android Testing Support Library进行测试

    问题: 你想要测试app的Android组件. 解决方案: 使用新的测试类实现JUnit风格的测试. 讨论: 测试像activities,services等的Android组件,需要将app部署到连接 ...

  9. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.1——单元测试

    问题: 你想要测试app中的非android部分. 解决方案: 可以使用Android Studio1.1里面增加的单元测支持和Android的Gradle插件. 讨论: ADT插件只支持集成测试,并 ...

随机推荐

  1. 【转】編譯Ogre1.9 IOS Dependencies及Ogre Source步驟及相關注意事項…

    http://makedreamvsogre.blogspot.tw/2014/01/ios-dependenciesogre-source.html 可能有人會想問我為什麼要自行編譯IOS Depe ...

  2. 【Android】 Android-wifi 直连 wifi direct wifi p2p

    现在,Android的支持Wi -Fi的直接点对点点对点(P2P)Android系统的供电设备和其他类型的设备,没有一个热点或互联网连接之间的连接.Android框架提供了一套Wi - Fi的P2P的 ...

  3. CCNA实验2.VLAN

    一. 二.配置主VTP上的信息 sw2上配置为domain server,sw1上配置为domain client,sw2上增加vlan并命名和添加描述 conf t vtp domain corp ...

  4. 使用 SELinux 和 Smack 增强轻量级容器

    http://www.bitscn.com/os/linux/200904/158771.html 安全 Linux 容器实现指南 轻量级容器 又称作 Virtual Private Servers ...

  5. [2013 eoe移动开发者大会]靳岩:从码农到极客的升级之路

    (国内知名Android开发论坛 eoe开发者社区推荐:http://www.eoeandroid.com/) 前天,2013 eoe 移动开发者大会在国家会议中心召开,eoe 开发者社区创始人靳岩在 ...

  6. Scala 深入浅出实战经典 第58讲:Scala中Abstract Types实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...

  7. EF OnModelCreating

      http://www.cnblogs.com/libingql/p/3353112.html     protected override void OnModelCreating(DbModel ...

  8. 【转载】怎样使用ZEMAX导出高质量的图像动画

    Zemax 导出高质量图片与动画 (2013-08-13 11:01:51) http://blog.sina.com.cn/s/blog_628dd2bc0101dycu.html 转载▼ How ...

  9. [iOS Xcode8]上传AppStore 无法构建版本 没有➕号

    最近iOS10出来了 Xcode也跟着升级到了8 想着App做个更新 于是修改好了代码打算上传新包 ,无奈总是发现构建不了新版本 经过各种蛋疼的查找.我列一下我的经验 1.如果是收费的App,那么是要 ...

  10. openssl 学习之从证书中提取RSA公钥N 和 E

    原文链接: http://blog.csdn.net/kkxgx/article/details/19850509 通常数字证书包含很多信息,其中N和E值即我们称为的公钥.如何从PEM 或者DER格式 ...