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操作