PickerViewCircle.java 文件源码

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

项目:AndroidStartupDemo 作者:
private void drawData(Canvas canvas)
{
    // 先绘制选中的text再往上往下绘制其余的text
    float scale = parabola(mViewHeight / 4.0f, mMoveLen);
    float size = (mMaxTextSize - mMinTextSize) * scale + mMinTextSize;
    mPaint.setTextSize(size);
    mPaint.setAlpha((int) ((mMaxTextAlpha - mMinTextAlpha) * scale + mMinTextAlpha));
    // text居中绘制,注意baseline的计算才能达到居中,y值是text中心坐标
    float x = (float) (mViewWidth / 2.0);
    float y = (float) (mViewHeight / 2.0 + mMoveLen);
    FontMetricsInt fmi = mPaint.getFontMetricsInt();
    float baseline = (float) (y - (fmi.bottom / 2.0 + fmi.top / 2.0));

    canvas.drawText(mDataList.get(mCurrentSelected), x, baseline, mPaint);
       //暴力法则,上下都最多绘制10条数据
       int count = Math.min(10, mDataList.size());
       // 绘制上方data
       for (int i = 1; i <= count; i++) {
           drawOtherText(canvas, i, -1);
    }
    // 绘制下方data
    for (int i = 1; i <= count; i++) {
           drawOtherText(canvas, i, 1);
    }

}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号