android上的自定义视图是否可以仅使文本无效,而不使背景图像无效?

android上的自定义视图是否可以仅使文本无效,而不使背景图像无效?,android,view,ondraw,invalidation,Android,View,Ondraw,Invalidation,MyCustomView绘制一些多边形,并且标题文本位于视图的中心。在应用程序运行时,我需要经常更改这些视图的标题文本。当然,我可以在设置新文本后使其无效,这样应用程序将重新绘制所有内容—多边形、颜色,最后是新文本—但我只是想知道是否有一种聪明的方法,只使标题文本无效,而不影响所有背景多边形。当前代码如下所示: public CustomView extends View { private Path mPolygon1; private Path mPolygon2;

My
CustomView
绘制一些多边形,并且
标题文本位于视图的中心。在应用程序运行时,我需要经常更改这些视图的标题文本。当然,我可以在设置新文本后使其无效,这样应用程序将重新绘制所有内容—多边形、颜色,最后是新文本—但我只是想知道是否有一种聪明的方法,只使标题文本无效,而不影响所有背景
多边形
。当前代码如下所示:

public CustomView extends View {

    private Path mPolygon1;
    private Path mPolygon2;
    // .. more polygons

    private String mTitleText;

    @Override
    protected void onDraw(Canvas canvas) {

        // Draws all images
        canvas.drawPath(mPolygon1, mPaint);
        canvas.drawPath(mPolygon2, mPaint);
        // ... more polygon drawing

        canvas.drawText(mTitleText, 0, mTitleText.length(), mTextPaint);
    }

    public void setTitle(String title) {
        mTitleText = title;
        invalidate();           // more clever way????
    }
}
您可以使用invalidate(Rect)或invalidate(left、top、right、bottom)

有关详细信息,请使用invalidate(Rect)或invalidate(左、上、右、下)


有关详细信息

非常感谢。我不知道这种方法存在。有时候,一个对象有太多的方法,所以很难找到我正在寻找的正确方法……这是Android的问题之一,对我来说也是如此。有很多有用的方法。但是很难记住任何东西。非常感谢。我不知道这种方法存在。有时候,一个对象有太多的方法,所以很难找到我正在寻找的正确方法……这是Android的问题之一,对我来说也是如此。有很多有用的方法。但是很难记住任何东西。