推荐安卓开发神器(里面有各种UI特效和android代码库实例)

EditText(TextView同样处理)
添加图片主要用SpannableString和ImageSpan类:

Drawable drawable = getResources().getDrawable(R.drawable.icon);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
SpannableString spannable = new SpannableString(getText(R.id.editText1).toString() + "[smile]");
ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
spannable.setSpan(span, getText(R.id.editText1).length(),getText(R.id.editText1).length()+"[smile]".length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
editText.setText(spannable);

将需要的文字高亮显示:

public void highlight(int start,int end){          SpannableStringBuilder spannable=new SpannableStringBuilder(getText().toString());//用于可变字符串          ForegroundColorSpan span=new ForegroundColorSpan(Color.RED);          spannable.setSpan(span, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);          setText(spannable);      }  

加下划线:

public void underline(int start,int end){          SpannableStringBuilder spannable=new SpannableStringBuilder(getText().toString());          CharacterStyle span=new UnderlineSpan();          spannable.setSpan(span, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);          setText(spannable);      }  

组合运用:

SpannableStringBuilder spannable=new SpannableStringBuilder(getText().toString());          CharacterStyle span_1=new StyleSpan(android.graphics.Typeface.ITALIC);          CharacterStyle span_2=new ForegroundColorSpan(Color.RED);          spannable.setSpan(span_1, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);          spannable.setSpan(span_2, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);          setText(spannable);  

案例:带有\n换行符的字符串都可以用此方法显示2种颜色

    /**      * 带有\n换行符的字符串都可以用此方法显示2种颜色      * @param text      * @param color1      * @param color2      * @return      */      public SpannableStringBuilder highlight(String text,int color1,int color2,int fontSize){          SpannableStringBuilder spannable=new SpannableStringBuilder(text);//用于可变字符串          CharacterStyle span_0=null,span_1=null,span_2;          int end=text.indexOf("\n");          if(end==-1){//如果没有换行符就使用第一种颜色显示              span_0=new ForegroundColorSpan(color1);              spannable.setSpan(span_0, 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);          }else{              span_0=new ForegroundColorSpan(color1);              span_1=new ForegroundColorSpan(color2);              spannable.setSpan(span_0, 0, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);              spannable.setSpan(span_1, end+1, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);                            span_2=new AbsoluteSizeSpan(fontSize);//字体大小              spannable.setSpan(span_2, end+1, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);          }          return spannable;      } 

更多相关文章

  1. Android学习——TextView 设置中划线 下划线
  2. location of the android sdk has not been setup in the prefer
  3. wm命令使用方法(修改android 分辨率)修改
  4. android中在子线程中更新UI的几种方法
  5. Android Studio调错误方法
  6. Android动态设置Margin的方法
  7. java.lang.Exception: 密钥库文件不存在: ~/.android/debug.keys
  8. Android向通讯录添加联系人的一般方法

随机推荐

  1. echart(2),模拟数据导入篇
  2. Matlab仿真模拟的4个非常基础!!实例(附源码)
  3. 苹果Mac查看多张图片的方法
  4. 《数据中台架构——企业数据化最佳实践》
  5. 狗尾续貂之Neutron网络部署架构的第N+1种
  6. 熔断原理与实现Golang版
  7. ArcGIS模型构建器前提条件的应用(附省界县
  8. 使用面向对象的方法在积雪遥感影像上提取
  9. 基于自动化引擎的知识图谱实践案例分享
  10. 区块链SASE应用于数据安全流通的探讨