是否可以仅使文本无效,而不是 android 上自定义视图上的背景图像?
Is it possible to invalidate Text only, but not background image on a custom View on android?
我的CustomView
画了一些多边形,title text
位于视图的中心。随着应用程序的运行,我需要经常更改这些视图的标题文本。当然,我可以在设置新文本后使应用程序重新绘制所有内容 - 多边形、颜色,最后是新文本 - 但我只是想知道是否有一种聪明的方法只使标题文本无效,而保留所有背景polygons
未受影响。当前代码如下所示:
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)
Here is a link了解更多详情
我的CustomView
画了一些多边形,title text
位于视图的中心。随着应用程序的运行,我需要经常更改这些视图的标题文本。当然,我可以在设置新文本后使应用程序重新绘制所有内容 - 多边形、颜色,最后是新文本 - 但我只是想知道是否有一种聪明的方法只使标题文本无效,而保留所有背景polygons
未受影响。当前代码如下所示:
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)
Here is a link了解更多详情