美文网首页
TextView的疑难杂症,onDrawnDraw绘制无效

TextView的疑难杂症,onDrawnDraw绘制无效

作者: 会飞的狒狒 | 来源:发表于2020-05-10 19:57 被阅读0次

    记录下最近遇到的一个疑难杂症,TextView的onDrawnDraw绘制无效。当时也定位了好久,最后在stackoverflow上找到了答案。这里先附上stackoverflow的地址。
    https://stackoverflow.com/questions/25501185/can-you-explain-the-behavior-of-textview-gravity-singleline-and-canvas
    可以看到是因为同时设置了gravity=center和singleLine=true属性,导致TextView的mScrollX发生了偏移,所以onDrawnDraw绘制的内容就看不到了。
    看下stackoverflow提供的解决方案,就是对canvas做偏移。

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    
        // translate the canvas before drawing onto it, fixing the position
        canvas.translate(getScrollX(), 0);
    
        canvas.drawLine(1, 1, 1, TEXT_VIEW_HEIGHT_PX - 1, borderPaint);
        canvas.drawLine(1, 1, TEXT_VIEW_WIDTH_PX - 1, 1, borderPaint);
        canvas.drawLine(TEXT_VIEW_WIDTH_PX - 1, 1, TEXT_VIEW_WIDTH_PX - 1,
            TEXT_VIEW_HEIGHT_PX - 1, borderPaint);
        canvas.drawLine(1, TEXT_VIEW_HEIGHT_PX - 1, TEXT_VIEW_WIDTH_PX - 1,
            TEXT_VIEW_HEIGHT_PX - 1, borderPaint);
    }
    

    相关文章

      网友评论

          本文标题:TextView的疑难杂症,onDrawnDraw绘制无效

          本文链接:https://www.haomeiwen.com/subject/gsksnhtx.html