"@you bang---

go on -------"

需要做分享内容,前面有段格式固定写死,同时颜色为灰色;后面的内容可以编辑,颜色为黑色,同时支持多行

有人用textview做固定格式,edittext做可编辑部分;

如果是单行,感觉还没多大问题,但多行,第二行起始位置就无法控制了。

1.字体部分颜色灰色问题:

对于android的显示字体样式,有Spannable对象,可以高亮部分字体,还可以给字体设置超链接

参考http://blog.csdn.net/hitlion2008/article/details/6856780

SpannableStringBuilder style=new SpannableStringBuilder(mShareTitle + shareContentString);
style.setSpan(new ForegroundColorSpan(Color.LTGRAY),0,mShareTitle.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
shareContentTxt.setText(style);
Editable b = shareContentTxt.getText();
shareContentTxt.setSelection(b.length());

2.@you不允许编辑问题:

偷换概念,发现如果edittext修改的对象在不许编辑区域,就让内容还原,从而产生不可编辑的错觉

这里用的TextWatcher

shareContentTxt.addTextChangedListener(new TextWatcher() {
int current_start = -1;
boolean last_changed = false;
CharSequence current_s;
@Override
public void afterTextChanged(Editable s) {
if (current_start < mShareTitle.length() && !last_changed) {
last_changed = true;
SpannableStringBuilder style=new SpannableStringBuilder(current_s);
style.setSpan(new ForegroundColorSpan(Color.LTGRAY),0, mShareTitle.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
shareContentTxt.setText(style);
shareContentTxt.setSelection(shareContentTxt.getText().length());
} else {
last_changed = false;
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
current_start = start;
current_s = s.toString();
} @Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
} });

他们将依次调用beforeTextChanged onTextChanged afterTextChanged方法,在这里修改editable内容需要有终止条件,否则很快就递归调用,栈溢出了。

android text的更多相关文章

  1. android text中显示HTML语言

    package com.example.test; import java.io.InputStream; import java.net.URL; import android.annotation ...

  2. Android Text Color设置不当造成信息不显示

    Android Text Color设置不当造成信息不显示 Android 的TextView 可以设置颜色,默认我们可以设置成 #000000 ,但某一次设置成了#00000000 ,就是多了两个0 ...

  3. React Native & Android & Text Input

    React Native & Android & Text Input react native clear input value https://stackoverflow.com ...

  4. android:text 文字阴影设置

    <SPAN style="FONT-SIZE: 16px"><TextView  android:id="@+id/text"       a ...

  5. android API之android.text.TextWatcher

    When an object of a type is attached to an Editable, its methods will be called when the text is cha ...

  6. Android笔记——Button点击事件几种写法

    Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...

  7. Android ViewPager打造3D画廊

    本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 网上有很多关于使用Gallery来打造3D画廊的博客,但是在关于Gallery的官方说法中表明: This cl ...

  8. Android混合开发之WebViewJavascriptBridge实现JS与java安全交互

    前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...

  9. Android混合开发之WebView与Javascript交互

    前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...

随机推荐

  1. MyEclipse中查询

    在当前文件中查询: Ctrl + F 在整个项目中查询:   Ctrl + H(选File Search)

  2. 【C-001】printf理解

    输出整型的数值就不说了, 显示浮点型: printf("%.2f",3.33); //保留两位小数显示,数字前面没有空格填充 显示的时候,设计到0-1之间的数的时候: printf ...

  3. Embed dll Files Within an exe (C# WinForms)—Winform 集成零散dll进exe的方法

    A while back I was working on a small C# WinForms application in Visual Studio 2008. For the sake of ...

  4. hive和ORACLE语法对比

  5. 0525 SCRUM项目7.0

    主题:在下一个SPRINT中做的更好 一,实验回顾总结 当谈到在一个团队里的收获,首当其冲的便是对于团队工作流程的切身体会.亲力亲为.从申报材料.问卷设计.访谈提纲.团队建设.书签制作到实地访谈.问卷 ...

  6. 利用jquery实现自动登录

    前提是需要引入jquery和jquery.cookie html 用户名:<input type="text" id="name"/><br ...

  7. shell_基础知识

    参考: http://blog.csdn.net/kaizi318/article/details/9343551 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告 ...

  8. fis3安装

    主要安装过程参考官网:http://fis.baidu.com/fis3/docs/beginning/install.html 这里记录安装fis3时遇到的一些问题: 1.npm install - ...

  9. IconFont字体制作

    1. 第一步.准备svg格式图片 2. 登陆http://iconfont.cn/网站,上传图标. 3. 选中需要制作成iconfont的图标. 4. 将选中的图标转储为项目 5. 下载至本地. 6. ...

  10. Visual Studio 换皮肤

    通过字体和颜色修改 Visual Studio 提供了修改配色的入口,你完全可以根据自己的喜好进行自定义,下面就通过该方法把编辑器背景设置成 “豆沙绿”. 选择 工具 / 选项 / 环境 / 字体和颜 ...