Git Product home page Git Product logo

thinkmap's Introduction

Draw a tree in android,ThinkMap

The Simple code

following the simple code, you can build a tree.

        final NodeModel<String> nodeA = new NodeModel<>("A");
        final NodeModel<String> nodeB = new NodeModel<>("B");
        final NodeModel<String> nodeC = new NodeModel<>("C");
        final NodeModel<String> nodeD = new NodeModel<>("D");
        final NodeModel<String> nodeE = new NodeModel<>("E");
        final NodeModel<String> nodeF = new NodeModel<>("F");
        final NodeModel<String> nodeG = new NodeModel<>("G");
        final NodeModel<String> nodeH = new NodeModel<>("H");
        final NodeModel<String> nodeI = new NodeModel<>("I");
        final NodeModel<String> nodeJ = new NodeModel<>("J");
        final NodeModel<String> nodeK = new NodeModel<>("K");
        final NodeModel<String> nodeL = new NodeModel<>("L");
        final NodeModel<String> nodeM = new NodeModel<>("M");
        final NodeModel<String> nodeN = new NodeModel<>("N");
        final NodeModel<String> nodeO = new NodeModel<>("O");
        final NodeModel<String> nodeP = new NodeModel<>("P");
        final NodeModel<String> nodeQ = new NodeModel<>("Q");
        final NodeModel<String> nodeR = new NodeModel<>("R");
        final NodeModel<String> nodeS = new NodeModel<>("S");
        final NodeModel<String> nodeT = new NodeModel<>("T");
        final NodeModel<String> nodeU = new NodeModel<>("U");
        final NodeModel<String> nodeV = new NodeModel<>("V");
        final NodeModel<String> nodeW = new NodeModel<>("W");
        final NodeModel<String> nodeX = new NodeModel<>("X");
        final NodeModel<String> nodeY = new NodeModel<>("Y");
        final NodeModel<String> nodeZ = new NodeModel<>("Z");


        final TreeModel<String> tree = new TreeModel<>(nodeA);
        tree.addNode(nodeA, nodeB, nodeC, nodeD);
        tree.addNode(nodeC, nodeE, nodeF, nodeG, nodeH, nodeI);
        tree.addNode(nodeB, nodeJ, nodeK, nodeL);
        tree.addNode(nodeD, nodeM, nodeN, nodeO);
        tree.addNode(nodeF, nodeP, nodeQ, nodeR, nodeS);
        tree.addNode(nodeR, nodeT, nodeU, nodeV, nodeW, nodeX);
        tree.addNode(nodeT, nodeY, nodeZ);

        int dx = DensityUtils.dp2px(this, 20);
        int dy = DensityUtils.dp2px(this, 20);
        int mHeight = DensityUtils.dp2px(this, 720);
      
        testTreeView.setTreeLayoutManager(new RightTreeLayoutManager(dx, dy, mHeight));
        testTreeView.setTreeModel(tree);

AppStore

http://shouji.baidu.com/software/11238419.html

Other

https://blog.csdn.net/u012131702/article/details/54409193

thinkmap's People

Contributors

avenzhu51 avatar owant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thinkmap's Issues

Android7.1.2 演示—App版本情况 部分区域无法控制问题

调试的手机是 魅族note6 ,“ 演示—App版本情况” 中node“V1.0.3”以下部分全部不可控。
用README 里的使用方法创建的思维导图也出现了显示不全问题(但是在另一部5.1手机上一切正常)

`final NodeModel nodeA = new NodeModel<>("剑灵");
final NodeModel nodeB = new NodeModel<>("穿越火线");
final NodeModel nodeC = new NodeModel<>("QQ飞车");
final NodeModel nodeD = new NodeModel<>("QQ炫舞");
final NodeModel nodeE = new NodeModel<>("QQ三国");
final NodeModel nodeF = new NodeModel<>("地下城与勇士");
final NodeModel nodeG = new NodeModel<>("英雄联盟");
final NodeModel nodeH = new NodeModel<>("剑灵PC版");
final NodeModel nodeI = new NodeModel<>("剑灵手游版");
final NodeModel nodeJ = new NodeModel<>("冒险岛");
final NodeModel nodeK = new NodeModel<>("龙之谷");
final NodeModel nodeL = new NodeModel<>("传奇世界");
final NodeModel nodeM = new NodeModel<>("热血传奇");
final NodeModel nodeN = new NodeModel<>("永恒之塔");
final NodeModel nodeO = new NodeModel<>("彩虹岛");
final NodeModel nodeP = new NodeModel<>("我的世界");
final NodeModel nodeQ = new NodeModel<>("守望先锋");
final NodeModel nodeR = new NodeModel<>("炉石传说");
final NodeModel nodeS = new NodeModel<>("天谕");
final NodeModel nodeT = new NodeModel<>("风暴英雄");
final NodeModel nodeU = new NodeModel<>("无尽战区");
final NodeModel nodeV = new NodeModel<>("龙魂时刻");
final NodeModel nodeW = new NodeModel<>("梦幻西游PC版");
final NodeModel nodeX = new NodeModel<>("梦幻西游手游版");
final NodeModel nodeY = new NodeModel<>("魔兽世界");
final NodeModel nodeZ = new NodeModel<>("梦幻西游");
final NodeModel node1 = new NodeModel<>("游戏运营商");
final NodeModel node2 = new NodeModel<>("腾讯");
final NodeModel node3 = new NodeModel<>("盛大");
final NodeModel node4 = new NodeModel<>("网易");

    final TreeModel<String> tree = new TreeModel<>(node1);
    tree.addNode(node1, node2, node3, node4);
    tree.addNode(node2, nodeA, nodeB, nodeC, nodeD, nodeE, nodeF, nodeG);
    tree.addNode(node3, nodeJ, nodeK, nodeL, nodeM, nodeN, nodeO);
    tree.addNode(node4, nodeP, nodeQ, nodeR, nodeS, nodeT, nodeU, nodeV, nodeY, nodeZ);
    tree.addNode(nodeA, nodeH, nodeI);
    tree.addNode(nodeZ, nodeW, nodeX);

    int dx = DensityUtils.dp2px(this, 60);
    int dy = DensityUtils.dp2px(this, 30);
    int mHeight = DensityUtils.dp2px(this, 720);
    //int mHeight = DensityUtils.dp2px(this, 1080);

    TreeView testTreeView = new TreeView(this);
    testTreeView.setTreeLayoutManager(new RightTreeLayoutManager(dx, dy, mHeight));
    testTreeView.setTreeModel(tree);

    setContentView(testTreeView);`

收拾放缩的时候view在抖动

您好大神,在使用库的时候,发现了手势缩放的时候View在抖动,是什么原因呢,测试环境(小米手机Android6.0),求指导,很棒的library

顺便问您一下,而且响应区域就是这个View本身的区域吧,这是您故意设计的呢还是什么,我将其背景设置为黑色后,发现只有该View区域才可响应手势,离开了就失效了,如果可以响应全屏幕的区域,那就真的体验很好了。

超过三层数据后 ,位置偏移问题

我又来问问题了,当数据量比较大的时候,主要是在数据层级超过3层后,第四层的数据,的第一个数据位置会发生很大的偏移,就是往下偏移很多 ,其他数据显示又是正常的,对大佬的偏移算法实在研究不透,,很是奇怪,希望大佬看看

image

使用代码添加节点,map只能显示屏幕这么宽,超出部分无法显示完全

private void initTreeView(NodeModel<String> lastNode,List<ThinkMapNodeBean> nodeBeanList){

    for (int i=0;i<nodeBeanList.size();i++){
        ThinkMapNodeBean nodeBean=nodeBeanList.get(i);
        NodeModel<String> nodeModel = new NodeModel<>(nodeBean.getHtml());
        treeModel.addNode(lastNode,nodeModel);

// LogUtil.LogDebug("addNode:"+"("+lastNode.getValue()+",nodeModel="+nodeModel.getValue()+")");
if (nodeBean.getIschild()==1){
List childrenNodes=nodeBean.getChild();
initTreeView(nodeModel,childrenNodes);
}
}
}

使用递归的方式将节点全部添加进去

        initTreeView(nodeTitle,nodeBeanList);
        int dx = ConvertUtil.toPx(this, 20);
        int dy = ConvertUtil.toPx(this, 20);
        int mHeight = ConvertUtil.toPx(this, 720);

        treeView.setTreeLayoutManager(new RightTreeLayoutManager(dx, dy, mHeight));
        treeView.setTreeModel(treeModel);

结果是数据可以正确的按照导图的方式展示出来,但是只能有限的显示几个层级,更多的层级没法完全显示出来,就算移动treeview也看不到,请问大神,要怎么解决这种问题?
screenshot_20171124-104607

example code该怎么用?

请问一下最后两行的代码
binding.testTreeView.setTreeLayoutManager(new RightTreeLayoutManager(dx, dy, mHeight));
binding.testTreeView.setTreeModel(tree);
binding是什么对象来的?
是指需要绑定的view吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.