我有一个自定义的TextView,覆盖了onDraw(),我在其中镜像文本:
@Override
protected void onDraw(Canvas canvas) {
int cx = this.getMeasuredWidth() / 2;
int cy = this.getMeasuredHeight() / 2;
canvas.save();
if(mirrored)
{
canvas.scale(1f, -1f, cx, cy);
}
super.onDraw(canvas);
canvas.restore();
}
现在我想在我的活动中使用可重复的.scrollBy(0,-1)方法垂直滚动这个镜像画布。 但是,当我滚动文本时,它会从顶部剪裁: scroll1 scroll2
可能在TextView方法中发生了一些事情:bringPointIntoView(int offset)或bringTextIntoView()。
是否可以快速解决此问题?
提前致谢!
答案 0 :(得分:0)
因此,对于任何感兴趣的人,我通过setRotation(180)修复了文本视图,然后通过X轴镜像画布。然后我的onDraw方法就像这样:
@Override
protected void onDraw(Canvas canvas) {
int cx = this.getMeasuredWidth() / 2;
int cy = this.getMeasuredHeight() /2;
canvas.save();
if(mirrored)
{
canvas.scale(-1f, 1f, cx, cy);
setRotation(180);
}
else
{
setRotation(0);
}
super.onDraw(canvas);
canvas.restore();
}
这样,scrollBy方法适用于任何一个方向。