`
wang_peng1
  • 浏览: 3944236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字体背景颜色的高度修改

 
阅读更多

当使用android:lineSpacingExtra="5dp" 后面背景就会变大

public class BetterHighlightSpan extends ReplacementSpan {

    private int backgroundColor;
    public BetterHighlightSpan(int backgroundColor) {
        super();
        this.backgroundColor = backgroundColor;
    }

    @Override
    public int getSize(Paint paint, CharSequence text, int start, int end, FontMetricsInt fm) {
        return Math.round(paint.measureText(text, start, end));
    }

    @Override
    public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom,
            Paint paint) {

        // save current color
        int oldColor = paint.getColor();

        // calculate new bottom position considering the fontSpacing
        float fontSpacing = paint.getFontSpacing();
        float newBottom = bottom - fontSpacing;

        // change color and draw background highlight
        RectF rect = new RectF(x, top, x + paint.measureText(text, start, end), newBottom);
        paint.setColor(backgroundColor);
        canvas.drawRect(rect, paint);

        // revert color and draw text
        paint.setColor(oldColor);
        canvas.drawText(text, start, end, x, y, paint);
    }

}

TextView textView = (TextView) findViewById(R.id.textView);
SpannableStringBuilder builder = new SpannableStringBuilder("here some text and more of it");
builder.setSpan(new BetterHighlightSpan(Color.CYAN), 4, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(builder);

 

分享到:
评论
1 楼 hinuliba 2015-11-06  

相关推荐

    一个扩展的CListCtrl类支持修改背景颜色以及字体颜色

    1. 设置默认背景颜色,默认字体颜色,默认选中字体颜色,默认选中背景颜色(四种颜色) 2. 设置特定单元格的四种颜色,当插入删除行或列时,特定单元格的颜色不变。 3. 设置默认字体(所有单元格字体一致) 4. 绘制...

    设置CButton控件的字体颜色和背景颜色

    这种方法允许你对按钮的外观进行高度自定义,而不仅仅是修改字体颜色和背景颜色。 总结一下,自定义CButton控件的字体颜色和背景颜色,需要以下步骤: 1. 创建一个继承自CButton的新类,如CTestBtn。 2. 在新类中...

    CListCtrl控件背景颜色网格色彩

    本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色、单元格背景颜色、列字体颜色、单元格字体颜色。 通过改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景,重载函数实现!

    改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景

    3. **颜色**:`CListCtrl`的颜色设置涉及到多个方面,包括文本颜色、背景颜色、选中项的颜色等。你可以通过重写消息映射函数来处理`WM_CTLCOLORLISTVIEW`消息,从而控制这些颜色。在消息处理函数中,返回一个`HBRUSH...

    easygui修改字体、图片格式、背景颜色、布局等个性化操作

    easygui修改字体、图片格式、背景颜色、布局等个性化操作 easygui是一个基于tkinter的GUI框架,它提供了许多有用的功能来帮助开发者快速创建图形用户界面。然而,在高度个性化时,例如按钮框个性化定制等,可能会...

    【最新】MFC, CListCtrl 自定义字体、颜色和背景

    2. **颜色定制**:CListCtrl的颜色定制主要涉及背景色、文字色和选中项颜色。使用`SetBkColor`可以改变控件的背景色;对于列表项的文字颜色,可以在绘制项时使用`SetTextColor`。对于选中项的颜色,需要重载`...

    MFC Clist 字体颜色 行列背景 整行高度

    2. **行列背景**:改变行列背景颜色通常需要覆盖`OnDrawItem`函数。在这个函数中,你可以使用`CDC`的绘图函数,如`FillSolidRect`来填充项的背景。如果要根据数据动态改变颜色,你需要判断当前绘制的项并设置相应的...

    gvim编辑器设置字体、背景颜色备忘

    本文将深入探讨如何在GVim编辑器中设置字体、背景颜色,以及与这些设置相关的知识。 首先,让我们了解GVim的基本概念。GVim是Vim的图形用户界面(GUI)版本,它保留了Vim的强大力量和效率,同时提供了窗口系统下的...

    设置UITableView Section的背景颜色和字体颜色

    在某些情况下,开发者可能希望自定义UITableView的外观,比如改变Section的背景颜色和字体颜色,以满足特定的设计需求。以下是如何实现这一功能的详细步骤。 首先,我们来了解UITableView的Section。Section是...

    改变CListCtrlCHeaderCtrl高度字体颜色和背景增强版

    在这个"改变CListCtrlCHeaderCtrl高度字体颜色和背景增强版"的主题中,我们将探讨如何自定义这些控件的视觉样式,包括调整列头的高度、修改字体颜色以及改变背景颜色,从而提升用户界面的美观性和可用性。...

    VC6.0改变按钮的背景颜色

    在本案例中,我们讨论的主题是如何改变按钮控件的背景颜色。 MFC中的CButton类是Windows API中的BUTTON控件的面向对象封装。默认情况下,CButton控件的颜色遵循系统设定,但有时我们可能需要自定义其外观,比如改变...

    VC-button.zip_CButton文字颜色_button 背景颜色_vc++button颜色_颜色按钮

    在VC++开发环境中,我们经常会遇到需要自定义控件外观的需求,比如改变CButton控件的文字颜色和背景颜色。CButton是MFC(Microsoft Foundation Classes)库中的一个基础控件,用于创建各种按钮。默认情况下,CButton...

    设置CListCtrl单元格颜色和背景色VC++6.0

    在这个函数中,我们可以使用CDC对象的SetBkColor和SetTextColor方法来设置单元格的背景色和文字颜色。例如: ```cpp void CMyListCtrl::OnDrawItem(int nItem, LPDRAWITEMSTRUCT lpDrawItemStruct) { CDC* pDC = ...

    mfc 中列表控件头的设置(背景颜色,字体大小等)

    在Windows应用程序开发中,有时我们需要自定义列表控件的外观,如改变头(header)的背景颜色、字体大小等,以满足用户界面的个性化需求。在标题提到的问题中,我们关注的是如何正确且无内存泄露地实现这些设置。 ...

    VC 改变CListCtrlCHeaderCtrl高度字体颜色和背景增强版.rar

    这两个函数分别用于设置项文本的背景颜色和文字颜色。例如,我们可以创建一个自定义的`CListCtrl`派生类,在其中重写这些函数,以便在插入新项时自动应用自定义颜色。 ```cpp class CCustomListCtrl : public ...

    改变 CListCtrl高度、字体、颜色和背景的实例

    对于背景颜色,可以使用`SetBkColor`来设置,或者在自定义绘图中填充背景色。 - 头部控件(CHeaderCtrl)的颜色改变类似,通过重写`OnDrawHeaderCtrlItem`,并使用`SetBkColor`或自定义填充来调整。 5. **VC6.0...

    验证码实现(随机背景色及字体颜色,带扰乱线条)

    在这个“验证码实现(随机背景色及字体颜色,带扰乱线条)”的项目中,我们将探讨如何创建一个具有随机背景色、字体颜色以及扰乱线条的图像验证码。 首先,`CreatImage.java`是生成验证码图像的核心类。在这个类中...

    DataGrid的单元格背景和文字颜色

    在模板内,你可以直接设置TextBlock或其他元素的Foreground和Background属性,以改变文字和背景颜色。 ```xml ``` 2. **使用样式(Styles)** - 单元格样式(CellStyle):如果你只想简单...

    vs背景主题颜色字体设置

    导入的主题文件可能会预设了特定的字体,如果不喜欢,可以在“工具”>“选项”>“环境”>“字体和颜色”中进行修改。 总的来说,通过合理设置VS的背景主题和字体,我们可以创建一个既美观又实用的工作环境。"useful...

    listctrl 扩展类,字体颜色,行列背景色,整体行高度等都可以修改

    背景颜色的改变可以通过SetBkColor函数来实现,但这个函数只能设置整个控件的背景色。如果要针对特定行或列设置颜色,你需要重绘ListCtrl。这通常涉及到覆盖OnDrawItem和OnMeasureItem方法,使用CDC对象进行绘制。 ...

Global site tag (gtag.js) - Google Analytics