《Android 进阶(四)》自定义组织机构图-LazyOrgView

LazyOrgView

通过自定义View简单实现组织结构图。在网上搜索并没有发现类似的View,由于项目需要,快速实现一个满足项目需求。另外一种实现方式:Google OrgChart或者其他OrgChart.js。

源码地址

LazyOrgView

添加依赖

Gradle

步骤 1. 工程根目录build.gradle 添加如下

allprojects {
    repositories {
          maven { url 'https://jitpack.io' }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5

Step 2. 项目build.gradle 添加依赖


dependencies {
    implementation 'com.github.onlyloveyd:LazyOrgView:v1.0'
}
  • 1
  • 2
  • 3
  • 4

基本使用

步骤 1. 添加 LazyOrgView 至布局。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <cn.onlyloveyd.lazyorgview.widget.LazyOrgView
        android:id="@+id/rv_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</FrameLayout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

步骤 2. 使用TreeNode构建跟节点以及其他节点,然后使用addChildNode组织节点关系。

    TreeNode root = new TreeNode("总经理");
    root.isRoot = true;

    TreeNode A = new TreeNode("副经理");
    TreeNode Aa = new TreeNode("行政部");
    TreeNode Ab = new TreeNode("财务部");
    TreeNode Ac = new TreeNode("采购部");

    TreeNode B = new TreeNode("副经理");
    TreeNode Ba = new TreeNode("工程部");
    TreeNode Bb = new TreeNode("生产部");

    TreeNode C = new TreeNode("副经理");
    TreeNode Ca = new TreeNode("营销部");
    TreeNode Cb = new TreeNode("方案造价部");
    TreeNode Cc = new TreeNode("售后服务部");

    root.addChildNode(A);
    root.addChildNode(B);
    root.addChildNode(C);

    A.addChildNode(Aa);
    A.addChildNode(Ab);
    A.addChildNode(Ac);

    B.addChildNode(Ba);
    B.addChildNode(Bb);

    C.addChildNode(Ca);
    C.addChildNode(Cb);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

步骤 3. 给LazyOrgView配置 LazyOrgConfig 以及 rootNode。

      lazyOrgView.setRootNode(root);
      LazyOrgConfig lazyOrgConfig = new LazyOrgConfig();
      lazyOrgConfig.setLineColor(Color.BLUE).setTextSize(12)
                   .setLineWidth(1)
                   .setTextBgColor(Color.GREEN)
                   .setTextBgRes(R.drawable.rect_shape);
      lazyOrgView.setLazyOrgConfig(lazyOrgConfig);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

基本效果

1 
2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值