android 开发小贴士3
来源:互联网 发布:淘宝详情图片大小 编辑:程序博客网 时间:2024/06/02 17:22
android:animateLayoutChanges
一直以为 Lollipop Dialer 接通画面里面那些酷炫的动画(文字部分)是很复杂的做出来的,后来发现其实只有一行。
视频 演示:https://dl.pushbulletusercontent.com/N75Bx03taJzFVjjLkMpzzyqGKT8m5PpH/cm_trltexxLMY48Gyilun07312015153119.mp4
只需要加好 android:animateLayoutChanges=”true” 然后 setVisibility 就可以了
清除画布上的内容:canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
在自定义View的onDetachedFromWindow方法中清理与View相关的资源;
Fragment在onAttach方法中接收回调:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mPageSelectedListener = (PageSelectedListener) activity;
mMenuBtnOnclickListener = (MenuBtnOnClickListener) activity;
mCommitBtnOnClickListener = (CommitBtnOnClickListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + “must implements listener”);
}
}
使用ClipDrawable实现进度条功能;
自定义view中的getContext(),再也不需要专门创建一个mContext全局对象了;
自定义手写view的时候,在手指移动的过程中通过MotionEvent | Android Developers对象的getHistorySize()获得缓存的历史点,绘制出来的曲线要平滑很多。
复写Activity的onUserLeaveHint方法,确保用户离开界面时能够立即暂停界面中的一些任务,关于onUserLeaveHint的更多作用可以谷歌:android - Google 搜索
值得借鉴的点击两次退出应用的实现:Android关于双击退出应用的问题
没那么麻烦,直接用toast的getView().getParent() 判断是不是空就ok了。API 16 测试通过
public class MainActivity extends Activity {
private Toast toast;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toast = Toast.makeText(getApplicationContext(), "确定退出?", 0);}public void onBackPressed() { quitToast();}/*public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.println(keyCode + "...." + event.getKeyCode()); if(keyCode == KeyEvent.KEYCODE_BACK){ quitToast(); } return super.onKeyDown(keyCode, event);}*/private void quitToast() { if(null == toast.getView().getParent()){ toast.show(); }else{ System.exit(0); }}
}
TimingLogger,SDK自带打印时间戳工具,简直神器。
摘自官方文档:
A utility class to help log timings splits throughout a method call. Typical usage is:
TimingLogger timings = new TimingLogger(TAG, “methodA”);
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。这个类在AsyncTask中用到了。
etUserVisibleHint getUserVisibleHint 判断fragment是否可见
- android 开发小贴士3
- android 开发小贴士1
- android 开发小贴士2
- Android HAL 开发 (3)
- Android HAL 开发 (3)
- Android HAL 开发 (3)
- Android HAL 开发 (3)
- Android HAL 开发 (3)
- Android HAL 开发 (3)
- Android HAL 开发 (3)
- android开发学习-3
- Android开发Tips(3)
- android开发学习3
- Android--【CSRMesh蓝牙开发】CSRMesh1.3开发
- Android笔记---- Android应用界面开发(3)
- Android学习【3】Android开发问题记录
- Android开发学习(3)Hello Android!
- Android开发指南中文版3
- 1072:字母排列
- 小点滴——xmind思维导图软件简单操作
- [CasperJS] 安装
- 对象的强、软、弱和虚引用
- IllegalMonitorStateException异常原因及解决办法
- android 开发小贴士3
- word转pdf转换器的多种转换功能
- 滤镜属性
- JZOJ 3463 军训
- C/C++语言中Static的作用详述
- Android触摸屏事件派发机制详解与源码分析一(View篇)onTouch,onClick,ontouchevent
- Windows Phone 一 初学者的心得
- iOS开发 将图片打包编码以便上传
- 南邮 OJ 1097 卡片游戏