Android技巧总结 系列一

本系列博客就是用于总结平时开发用到的技巧或者方法,用于开发者能更好的编码,如果有帮助或者有错误都可以下方留言,谢谢

成功源于开始的积累

  1. String.format(“3>7是:%b”,3>7) 输出是3>7是false
    作用:用于替换输出,只需要更改输入的内容,结果和根据输入的内容去更改
  2. String result = "实时更新中,当前大盘指数<font color='red'>%d</font>" Html.fromHtml(result); 可以将文字像html一样编写, 返回格式spanner类型,可以通过textview的settext进行设置。作用:显示一句话时,不同的文字不同的颜色。
  3. ViewStub是一种默认不可见的视图,它没有大小所以不能被改变,它可以设置layout属性,当我们想加载对应的布局的时候调用inflate加载,在未使用的时候消耗较低的内存。作用:优化ui加载性能,替代设置View.GONE ,不过这个只能加载一次,如果多次的情况仍然推荐使用设置View的View.GONE
  4. View 停止动画的方法:clearAnimation()。
  5. 一般情况下我们无法在OnCreate()中获取View的宽高,不过通过以下代码强制测量就可以得到了
    我们在onCreate里面得到的控件的宽高全是0。采用下面的方法,可以得到真实的宽高
    int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
    int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
    imageView.measure(w, h);
    int height =imageView.getMeasuredHeight();
    int width =imageView.getMeasuredWidth();
    textView.append("\n"+height+","+width);
  6. 对与ListView有的时候不设置宽度会导致无法点击Item
  7. 对于类的静态成员变量,它对于类本身和类所有的对象都是公用的,它使用的是同一块内存空间,更改其中的一个其他的也会修改。
  8. 一个接口可以继承多个接口.interface C extends A, B {}是可以的.
    一个类可以实现多个接口:class D implements A,B,C{}
    但是一个类只能继承一个类,不能继承多个类 class B extends A{}
    在继承类的同时,也可以继承接口:class E extends D implements A,B,C{}
    这也正是选择用接口而不是抽象类的原因
  9. RelativeLayout 设置垂直居中此时设置marggin_top 或者marggin_bottom 仍然有效
  10. EditText有一个属性:android:textCursorDrawable,这个属性是用来控制光标颜色的
    android:textCursorDrawable=”@null”,”@null”作用是让光标颜色和text color一样,当然也可以设置为其他颜色
  11. 如果想让软键盘不自动弹出 设置activity 属性 android:windowSoftInputMode=”adjustUnspecified|stateHidden”
    stateUnspecified :未指定默认状态 stateHidden:隐藏 ,默认隐藏,点击后会显示
    adjustUnspecified: 让界面适应软键盘的位置和大小会让界面上移
  12. 第二种不让软键盘弹出的方法就是设置他的父布局focusable=”true” ,软键盘一样可以不弹出。
  13. 判断一个类是不是另一的实例(对于接口也适用)activity instanceof ISearch
  14. 如果设置的布局用于Fragenment或者popuwindow,此时的点击时间传递到了下面的布局时,可以设置Fragement或者popuwindow的布局android:clickable="true"
  15. List 对对应位置的操作有 add(int postion, object object) 这个是在指定位置添加,且他后面的的向后退。set(position, object object ) 设置某个位置的对象为谁,之前的被替换。
  16. popuwindow 不支持内部再添加surfaceView
  17. include 方式导入通用布局使用layout_width 和layout_height 会覆盖原布局的此属性
  18. 对于对象的初始化设置为null ,会节省内存。
  19. 属性动画可以设置多个动画同时进行。传统动画只能设置一个view 的多个动画
  20. Button可以通过设置Selector切换不同状态的背景图,TextView也可以通过selector去切换不同状态的文字颜色,此时TextView 需要设置clickable=true
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章