使用Deponder绘制安卓原生的动态关系图谱

前言:在安卓上绘制关系图谱网上的解决方案大多是用WebView+js,侵入性较高,对复杂的需求不友好。
Deponder是安卓原生的SDK,接入简单,支持自定义布局和缩放,赋予布局接近物理特性的动态谱图效果。

一、简介和优势

1、简介

Deponder作为在安卓上绘制动态图谱的SDK,使用简单,方便实现自定义需求。

2、Deponder的优点

1.安卓原生,插件形式使用,侵入性低,简单方便。

2.适用于任意布局,任意view集合,而且集合中的view可以是复杂布局,也可以互不相同。

效果示例

Deponder GitHub传送门

二、基本使用

0.首先在build.gradle中加入以下代码,引入依赖的SDK.

repositories {
   
	google()
	mavenCentral()
}
dependencies {
   
	implementation 'io.github.cinpecan:deponder:0.2.7@aar'
}

假设我们已有布局(也可以是动态布局,例如RecyclerView)

原先采用何种布局或排布并不重要,都会被Deponder变成动态的关系图谱

<FrameLayout	//myGroup

  <TextView  .../>  //myItemA(也可以是复杂布局)
  
  <ImageView  .../> //myItemB(也可以是复杂布局)
  
</FrameLayout>

ViewGroup myGroup
TextView  myItemA
ImageView myItemB

1.选择myGroup作为图谱的边界,并创建Deponder

RootOption rootOption = SimpleRootOption.builder()
            .itemView(myGroup)
            .build
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中文知识图谱搭建和绘制关系图谱的代码需要用到自然语言处理和图谱可视化的技术,下面是一个简单的示例代码供参考: 1. 中文知识图谱搭建 首先需要对中文文本进行分词、词性标注、实体识别等自然语言处理操作,然后根据实体之间的关系构建知识图谱。以下是一个简单的示例代码: ```python import jieba import jieba.posseg as pseg import jieba.analyse from py2neo import Graph, Node, Relationship # 连接Neo4j数据库 graph = Graph('http://localhost:7474', username='neo4j', password='password') # 分词 def cut_words(text): words = pseg.cut(text) return words # 实体识别 def extract_entities(text): entities = jieba.analyse.extract_tags(text, withWeight=True, withFlag=True) return entities # 构建知识图谱 def build_knowledge_graph(text): words = cut_words(text) entities = extract_entities(text) for word, flag in words: if flag.startswith('n'): # 名词 node = Node('Entity', name=word) graph.create(node) for entity, weight, flag in entities: if word == entity: continue if word in entity or entity in word: rel = Relationship(node, 'related_to', Node('Entity', name=entity)) graph.create(rel) ``` 2. 绘制关系图谱 绘制关系图谱需要用到图谱可视化的库,比如D3.js、Echarts等。以下是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>关系图谱</title> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <div id="chart" style="width: 100%; height: 500px;"></div> <script> var myChart = echarts.init(document.getElementById('chart')); myChart.showLoading(); $.get('/data.json', function (data) { myChart.hideLoading(); option = { title: { text: '关系图谱' }, tooltip: {}, animationDurationUpdate: 1500, animationEasingUpdate: 'quinticInOut', series: [ { type: 'graph', layout: 'force', roam: true, label: { normal: { show: true } }, force: { repulsion: 1000 }, data: data.nodes, links: data.links } ] }; myChart.setOption(option); }); </script> </body> </html> ``` 以上代码示例中,通过调用Echarts库的图谱可视化组件,实现了从Neo4j数据库中读取知识图谱数据,并以关系图谱的形式进行展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值