日常小工具

shape绘制圆角



    
    



隐藏电话号码的中间四位的正则表达式

        String phone = "18306812696";
        String phone_s = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
        Log.e("===z",phone_s);//183****2696

ListView优化

ListView每次滚动都会调用getView方法,所以优化getVieiw是重中之重

convertView复用

convertView是刚刚滚动出可见区域的View的引用,此时它已经不可见,所以应该被复用以减少View的创建

LayoutInflater.inflate(resourceId,View)这个方法是用来通过pull的解析方式从XML文件生成一个View对象的,如果有成千上万个Viwe都要去解析XML生成View,会非常消耗性能

优化代码

View view = null;//getView方法要返回的View
if(convertView == null){//如果当前没有可以复用的View
   view = LayoutInflater.from(context).inflate(resourceId,null);//那么就从XML文件生成一个View
}else{//否则
   view = convertView;//就使用可以复用的View
}

ViewHolder的使用

findViewById这个方法是从ViewGroup的子View里面循环遍历找id与给出的ID相同的子View,还是比较耗时的
优化代码

ViewHolder viewHolder = null;
View view = null;//getView方法要返回的View
if(convertView == null){//如果当前没有可以复用的View
   viewHolder = new ViewHolder();
   view = LayoutInflater.from(context).inflate(resourceId,null);//那么就从XML文件生成一个View
   viewHolder.resourceViewName = view.findViewById(resouceViewId);//从XML中找到对应的View
   view.setTag(viewHolder);//将ViewHolder设置在当前ItemView的tag里面
}else{//否则
   view = convertView;//就使用可以复用的View
   viewHolder = (ViewHolder)convertView.getTag();//从复用的View中取出viewHoder
}
class  ViewHolder {  
    TextView name;  
}  

图片"三级缓存"加载优化

分页加载

制作阴影点9图片

http://inloop.github.io/shadow4android/

你可能感兴趣的:(日常小工具)