ColumnHeader.java 文件源码

java
阅读 28 收藏 0 点赞 0 评论 0

项目:iOffice 作者:
private void drawFirstVisibleColumn(Canvas canvas, float zoom, Paint paint)
{
    FontMetrics fm = paint.getFontMetrics();  
    float visibleColumnWidth = 0;
    SheetScroller minRowAndColumnInformation = sheetview.getMinRowAndColumnInformation();
    //draw rest part of first column
    float columnWidht = (minRowAndColumnInformation.getColumnWidth() * zoom);
    visibleColumnWidth = (float)(minRowAndColumnInformation.getVisibleColumnWidth() * zoom);
    // 绘制header
    if(HeaderUtil.instance().isActiveColumn(sheetview.getCurrentSheet(), minRowAndColumnInformation.getMinColumnIndex()))
    {
        paint.setColor(SSConstant.ACTIVE_COLOR);
    }
    else
    {
        paint.setColor(SSConstant.HEADER_FILL_COLOR);
    }

    rect.set((int)x, 0, (int)(x + visibleColumnWidth), columnHeaderHeight);
    canvas.drawRect(rect, paint);        

    //header line
    paint.setColor(SSConstant.HEADER_GRIDLINE_COLOR);
    canvas.drawRect(x, 0, x + 1, columnHeaderHeight, paint);

    // 绘制文本
    canvas.save();
    canvas.clipRect(rect);
    paint.setColor(SSConstant.HEADER_TEXT_COLOR);

    String rowText = HeaderUtil.instance().getColumnHeaderTextByIndex(minRowAndColumnInformation.getMinColumnIndex());
    float textWidth = paint.measureText(rowText);
    float textX = (columnWidht - textWidth) / 2;
    float textY = (int)(columnHeaderHeight - Math.ceil(fm.descent - fm.ascent)) / 2;
    canvas.drawText(rowText, x + textX - (columnWidht - visibleColumnWidth), textY - fm.ascent, paint);

    canvas.restore();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号