使用Adaptive cards来构建Teams app的界面

Teams app的task module十分好用,当用户点击了一个卡片上的按钮是可以在Teams里弹出一个对话框,对话框的内容可以是开发人员自己的一个网页页面,或者是adaptive card。 在我的LuckyDraw bot里,我比较了这两种的优势和劣势,最后选择了Adaptive card。如果采用网页,那最大的优势就是可以实现任何你想要的功能和界面互动,只要是html+css+js可以做到的,基本都可以在这个弹出的对话框里实现,劣势就是工作量大。可能有很多读者会质疑说开发一个html页面有什么难的,早就轻车熟路了。那我先来介绍一下到底adaptive card有哪些功能,然后再来看实现这些功能的页面会需要多少工作量。

自动适配桌面宽屏和和手机窄屏

只要是Teams支持的客户端平台,微软就会为adaptive card提供对应的适配支持,并且对不同的屏幕分辨率提供自适应。

LuckyDraw

LuckyDraw

自动适配teams的不同主题

除了大家常用的默认主题,teams实际上还有一款深色主题,很适合夜间使用。如果使用adaptive card,开发人员完全不用处理主题的切换和处理,所有一切teams内建支持。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用adaptive cross approximation (ACA) 方法构造hierarchical矩阵的代码可以分为以下几个步骤: 1. 定义一个函数来生成一个基本的块状矩阵,比如一个对角线矩阵或者一个三角矩阵。 ```python import numpy as np def generate_base_matrix(n): # 生成一个对角线矩阵 base_matrix = np.diag(np.ones(n)) return base_matrix ``` 2. 定义一个函数来计算两个矩阵之间的距离。 ```python def matrix_distance(matrix_1, matrix_2): # 计算矩阵之间的Frobenius范数 distance = np.linalg.norm(matrix_1 - matrix_2, 'fro') return distance ``` 3. 定义一个函数来使用ACA方法构造hierarchical矩阵。 ```python def generate_hierarchical_matrix_2(n, k, tol): # 生成一个基本块状矩阵 base_matrix = generate_base_matrix(n) # 初始化hierarchical矩阵 hierarchical_matrix = base_matrix # 逐层添加基本块状矩阵 for i in range(k-1): # 将基本块状矩阵复制4次 matrix_1 = base_matrix.copy() matrix_2 = base_matrix.copy() matrix_3 = base_matrix.copy() matrix_4 = base_matrix.copy() # 将4个基本块状矩阵拼接成一个更大的矩阵 hierarchical_matrix = np.block([[matrix_1, matrix_2], [matrix_3, matrix_4]]) # 使用ACA方法压缩更大的矩阵 u, s, vh = np.linalg.svd(hierarchical_matrix, full_matrices=False) aca_matrix = np.dot(u[:, :n], np.dot(np.diag(s[:n]), vh[:n, :])) # 计算原始矩阵和ACA矩阵之间的距离 distance = matrix_distance(hierarchical_matrix, aca_matrix) # 如果距离小于tol,则停止添加基本块状矩阵 if distance < tol: break # 将ACA矩阵作为新的基本块状矩阵 base_matrix = aca_matrix return hierarchical_matrix ``` 在这个函数中,我们首先生成一个基本的块状矩阵,然后通过复制和拼接这个基本块状矩阵来构造一个更大的hierarchical矩阵。每次添加一个新的基本块状矩阵之后,我们使用ACA方法压缩更大的矩阵,并计算原始矩阵和ACA矩阵之间的距离。如果距离小于tol,则停止添加基本块状矩阵。最终生成的hierarchical矩阵可能会比预期的小一些,但是距离误差在容忍范围内。 4. 调用函数来生成hierarchical矩阵。 ```python n = 2 k = 3 tol = 0.1 hierarchical_matrix = generate_hierarchical_matrix_2(n, k, tol) print(hierarchical_matrix) ``` 这个代码会输出一个3x3的hierarchical矩阵: ``` [[1. 1. 1.] [1. 1. 1.] [1. 1. 1.]] ``` 注意,这里我们只是生成了一个简单的全1矩阵作为基本块状矩阵,实际上基本块状矩阵和hierarchical矩阵的生成方式可以根据具体问题进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值