TextView相关资料

关于色值:
0xffff00ff是int类型的数据,分组一下0x|ff|ff00ff,0x代表十六进制数,ff代表十六进制的透明度的值,ff00ff代表十六进制的三原色的值(“红、绿、蓝”)。
注意:
1. 0x后面ffff00ff必须有8位,透明度和色值都是以十六进制表示,值的范围从00到 ff(整形: 0到 255)。对于 alpha,00表示完全透明,ff表示完全不透明。
2. 0xffff00ff是整形表示,"#FFFFFF"是字符串类型表示
3. 在JS中,如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。如,八进制:var y=0377; 十六进制:var z=0xFF;
 
16进制:
A:10       B:11      C:12      D:13      E:14         F:15
例子:
2AF5 = 2*16*16*16 + 10*16*16 + 15*16 + 5*1 = 10997
(注意:以上是16进制转10进制,和2进制转10进制一样)
补充:
10进制转化为16进制的算法 :10进制数除以16得到商和余继续处理
 
 
关于TextView直接用代码模仿在xml中使用颜色选择器的效果:
1. textV1.setTextColor()方法中只能放color文件中的色值,不可以直接用选择器文件
 
textV1.setTextColor(getResources().getColor(R.color.title_category_tv_default_bg));

2. 通过触碰监听方法,textV1.setOnTouchListener(viewOnTouch);来模拟手指下去和上来的状态

View.OnTouchListener viewOnTouch = new View.OnTouchListener() {
 
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            DLog.e("--ACTION_DOWN---");
            ((TextView) v).setTextColor(getResources().getColor(R.color.title_category_tv_press_bg));
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
            DLog.e("--ACTION_UP---");
            ((TextView) v).setTextColor(getResources().getColor(R.color.title_category_tv_default_bg));
        }
        return false;
    }
};
注意:第一次最好给TextView控件字体设置一下默认的色值,避免第一次需要改变字体颜色后才能看到效果
 
延伸:直接设置String类型的颜色值
layout.setBackgroundColor(Color.parseColor("#FFFFFF"))//设置背景颜色
tv_title.setTextColor(Color.parseColor("#FFFFFF"));//设置字体颜色
tv_title.setTextColor(mContext.getResources().getColor(R.color.black));//设置字体颜色
 
TextView颜色设置方式:
方式一:
tv_textView.setTextColor(getResources().getColor(R.color.colorAccent));
方式二:
tv_textView.setTextColor(Color.parseColor("#FDFF00"));
方式三:
tv_textView.setTextColor(Color.rgb(93, 95, 98));
方式四:
tv_textView.setTextColor(0xffff0000);
 
 
注意:
layout.setBackgroundColor支持以下三种方式:
1. getResources().getColor(R.color.colorAccent)
2. Color.parseColor("#FF0000")
3. 0xffff0000
 
 
TextView设置背景颜色
有三种方法:
setBackgroundResource:通过颜色资源ID设置背景色。 
setBackgroundColor:通过颜色值设置背景色。 
setBackgroundDrawable:通过Drawable对象设置背景色。 
下面分别演示如何用这3个方法来设置TextView组件的背景
setBackgroundResource方法设置背景:
以下为引用内容:  textView.setBackgroundResource(R.color.background);  
setBackgroundColor方法设置背景:
以下为引用内容:  textView.setBackgroundColor(android.graphics.Color.RED);
setBackgroundDrawable方法设置背景:
以下为引用内容:  Resources resources=getBaseContext().getResources(); Drawable drawable=resources.getDrawable(R.color.background); textView.setBackgroundDrawable(drawable);  
 
 
 
 
//一个属性对象被引用多次,最后属性值会覆盖前面的属性值,最好一个视图搭配一个属性对象
RelativeLayout.LayoutParams tvParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
 
 
----------------------------------
 
TextView设置Html数据,<br>h5的换行符不支持,解决:直接设置字符串,然后把<br>替换系统可识别的换行符
//        ToolClass.getInstance().setTvHtml(tvRule, signInfoBean.getRule().replace("</br>", "\\n"));
        setText(tvRule, signInfoBean.getRule().replace(Constant.LINE_BREAK, "\n"));
public static final String LINE_BREAK = "#line_break#";
 
---------------------------------
 
复制功能:
方式一:android sdk 11起支持,在布局文件的TextView控件属性中增加一行属性,就可以实现复制文本效果:
(缺点,长按会弹出拖动复制的区域,需要手动拖动复制)
android:textIsSelectable="true"

方式二:直接调用系统方法,整行复制,注意这两种方法复制的内容都在剪切板上,最后复制的内容会覆盖前面的,覆盖与剪切板标签无关

/**
 * 复制文本(整行复制)
 * @param context
 * @param copyLabel
 * @param copyContent
 */
public void copyTextToClipboard(Context context, String copyLabel, String copyContent) {
    try {
        if (android.os.Build.VERSION.SDK_INT > 11) {
            //在API 11之后,对ClipboardManager进行了升级,使之可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值