goman 发表于 2013-8-28 16:29

Android腾讯微薄客户端开发六:给用户加VIP认证以及美化微博

   
Java代码   
    public static List<Map<String,Object>> getStartAndEndIndex(String sourceStr,Pattern pattern){   
                List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();   
                Matcher matcher = pattern.matcher(sourceStr);   
                boolean isFind = matcher.find();   
                while (isFind) {   
                        Map<String,Object> map = new HashMap<String, Object>();   
                        String faceName = matcher.group().substring(1,matcher.group().length());//表情名称   
                        map.put("startIndex",matcher.start());   
                        map.put("endIndex",matcher.end());   
                        map.put("faceName",faceName);   
                        list.add(map);   
                        isFind = matcher.find((Integer)map.get("endIndex")-1);   
                }   
                return list;   
      }Java代码   
    public static SpannableString decorateVipInStr(SpannableString spannable,List<Map<String,Object>> list,Resources resources){   
                int size = list.size();   
                Drawable drawable = null;   
                if(list!=null&&list.size()>0){   
                        for(int i=0;i<size;i++){   
                              Map<String,Object> map = list.get(i);   
                              drawable = resources.getDrawable(R.drawable.vip);   
                              drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());   
                              ImageSpan span = new ImageSpan(drawable,ImageSpan.ALIGN_BASELINE);   
                              spannable.setSpan(span, (Integer)map.get("startIndex"), (Integer)map.get("endIndex"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
                        }   
                }   
                return spannable;   
      }   
         
      public static SpannableString decorateTopicInStr(SpannableString spannable,List<Map<String,Object>> list,Resources resources){   
                int size = list.size();   
                Drawable drawable = null;   
                CharacterStyle foregroundColorSpan=new ForegroundColorSpan(Color.argb(255, 33, 92, 110));   
                if(list!=null&&list.size()>0){   
                        for(int i=0;i<size;i++){   
                              Map<String,Object> map = list.get(i);   
                              spannable.setSpan(foregroundColorSpan, (Integer)map.get("startIndex"), (Integer)map.get("endIndex"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
                        }   
                }   
                return spannable;   
      }      
页: [1]
查看完整版本: Android腾讯微薄客户端开发六:给用户加VIP认证以及美化微博