Android实现思维导图功能,Android实现思维导图

本文介绍了如何在Android中实现一个思维导图的开源控件,包括树形结构的存储、遍历和绘制,以及节点的位置计算和样式适配。关键类包括TreeModel、NoteModel、NoteView和TreeView,通过TreeLayoutManager接口处理不同树形形状的布局。此外,还详细讲解了View的连线绘制和位置纠正流程。
摘要由CSDN通过智能技术生成

最近,小弟在实现一个思维导图的开源控件。下面我简单介绍一下如下打造一个类似思维导图软件的ViewGroup。

5346384d71c4?from=groupmessage@

基本结构.png

建立模型

主要模型结构相对简单:TreeModel,NoteModel,NoteView,TreeView。

核心实现分布如下:

TreeModel:树形结构的存储,树形结构的遍历,添加、删除节点;

NoteModel:节点关联的指向,和Parent的指向;

TreeView :绘制树形结构,对树形结构位置的纠正,实现View层的添加,删除,note关联绘制;

NoteView:显示text;

编写位置计算核心代码

在核心代码中,我想和大家分享的是TreeView如何对多种Style(树形形状)进行适配的问题。因为我们的树形结构的表达多种的,有的是一个半树形图,有点是圆形展开的等。对于这个问题,作为程序员如何进行解耦能,采用Interface进行解构适配,统一行为。所以在这里我写了一个TreeLayoutManager进行管理树形的位置表达。这里我实现了一个RightTreeLayoutManager。代码概况如下:

接口

public interface TreeLayoutManager {

/**

* 进行树形结构的位置计算

*/

void onTreeLayout(TreeView treeView);

/**

* 位置分布好后的回调,用于确认ViewGroup的大小

*/

ViewBox onTreeLayoutCallBack();

/**

* 修正位置

*

* @param treeView

* @param next

*/

void correctLayout(TreeView treeView, NodeView next);

}

实现

public class RightTreeLayoutManager implements TreeLayoutManager{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值