仿Keep自定义控件(个人记录)

文章目录

  • 效果
    • 第一种模式:CENTER_TO_RIGHT mode
    • 第二种模式:CENTER_TO_LEFT mode
    • 第三种模式:LEFT
    • 第四种模式:RIGHT
  • 代码片段

效果

第一种模式:CENTER_TO_RIGHT mode

仿Keep自定义控件(个人记录)_第1张图片

第二种模式:CENTER_TO_LEFT mode

仿Keep自定义控件(个人记录)_第2张图片

第三种模式:LEFT

仿Keep自定义控件(个人记录)_第3张图片

第四种模式:RIGHT

仿Keep自定义控件(个人记录)_第4张图片

代码片段

  /**
     * 计算bar
     * @param itemEntity
     * @param start
     * @return
     */
    private int computeBar(ItemEntity itemEntity, int start) {
        float fontHeight = FontUtil.getFontHeight(paint);
        itemEntity.rectBar.setEmpty();
        itemEntity.rectBar.set(start - itemWidth/2,rectContent.top + fontHeight + textSpace + circleRaduis,start + itemWidth/2,rectContent.bottom);
        int height = (int) (itemEntity.rectBar.height() * (itemEntity.count * 1.0f / MAX));
        itemEntity.rectBar.set(itemEntity.rectBar.left,itemEntity.rectBar.bottom - height,itemEntity.rectBar.right,itemEntity.rectBar.bottom);
        return (int) itemEntity.rectBar.width();
    }
     /**
     * 计算三角形的坐标
     * @param itemEntity
     * @param start
     */
    private void computAngle(ItemEntity itemEntity, int start) {..,}

    /**
     * 计算线的坐标
     * @param itemEntity
     * @param start
     */
    private void computLine(ItemEntity itemEntity, int start) {...}

    /**
     * 计算文字的坐标
     * @param itemEntity
     * @param start
     */
    private int computeText(ItemEntity itemEntity, int start) {.... }

仿Keep自定义控件(个人记录)_第5张图片

仿Keep自定义控件(个人记录)_第6张图片

你可能感兴趣的:(android)