提升Android Studio开发体验:使用Kelp插件实现颜色和图标预览

提升Android Studio开发体验:使用Kelp插件实现颜色和图标预览

在Android开发中,自动补全功能对于提高开发效率至关重要。然而,默认的Android Studio并不能预览颜色和图标,这使得开发者在选择资源时常常感到困惑。本文将介绍如何使用Kelp插件,为Android Studio添加颜色和图标预览功能,从而提升开发体验。

Kelp插件简介

Kelp插件是一款功能强大的工具,旨在为Android Studio添加各种增强功能,改善开发者体验。它支持以下关键功能:

  • 自动补全中的暗色和亮色预览 🎨
  • 自动补全中的图标预览 🔍
  • 组件函数的可自定义图标
  • 可在Git中存储和共享的Live Templates ⌨️
  • KDoc图像渲染等

安装Kelp插件

首先,从Kelp GitHub仓库下载最新版本的插件,并通过以下路径手动安装:

Settings/Preferences > Plugins > ⚙️ > Install plugin from disk....

接下来,创建一个名为config.json的配置文件,放置在.idea/kelp目录中。该文件将用于配置插件的各种功能。此外,为确保团队中的每个人都在使用该插件,您可以创建一个externalDependencies.xml文件进行通知。

注意:确保您使用的是Android Studio Koala 2024.1.1 Canary 3或更高版本。

设置颜色预览 🎨

要启用颜色预览功能,首先需要按照以下方式实现您的颜色系统:

class GetcontactColor(val primary: Color,val secondary: Color,
) {/*** This class must have MUST structure and name.* It MUST be placed here.* You can create it manually or autogenerate it using code generators.*/private class KelpColorPreview {/*** The pattern is "name_lightColor_darkColor"* If you don't have a dark theme, you MUST set `darkColor`* to be the same as `lightColor`, then it won't be rendered.* * Colors MUST be in ARGB:* The format of an ARGB hexadecimal color is AARRGGBB. * AA is the alpha channel. It represents the opacity of the color. * RR is the red value, GG is the green, and BB is the blue.* * If your colors are in RGB format, just add FF to them, * representing no transparency.*/val primary_FFD0BCFF_FF6650A4 = Unitval secondary_12CCC2DC_FF625B71 = Unit}
}// or it can be declared like this
// it's just important for the color to be a val apperantly.
class GetcontactColor2 {private var _primary: Color by mutableStateOf(...)val primary: Color = _primaryprivate var _secondary: Color by mutableStateOf(...)val secondary: Color = _secondaryprivate class KelpColorPreview {val primary_FFD0BCFF_FF6650A4 = Unitval secondary_12CCC2DC_FF625B71 = Unit}
}

然后,在config.json文件中添加以下配置,以启用代码补全和gutter预览:

{"colorPreview": {"codeCompletionEnabled": true,"gutterEnabled": true}
}

保存config.json文件后,插件将自动应用新的更改。效果如下:

设置图标预览 🔍

图标预览功能使得开发者在使用图标时能够更直观地看到实际效果。我们团队有20多名Android开发者,使用图标时经常会遇到重复问题。通过使用ImageVector这种稳定类型管理图标,我们实现了高效的图标管理。

以下是图标管理的实现示例:

class AwesomeIcon {val direction: ImageVector@Composableget() = ImageVector.vectorResource(id = R.drawable.ic_direction)val feedback: ImageVector@Composableget() = ImageVector.vectorResource(id = R.drawable.ic_feedback)// 其他图标定义...
}internal val LocaleIcon = staticCompositionLocalOf { AwesomeIcon() }object AwesomeTheme {val icons: AwesomeIcon@Composable@ReadOnlyComposableget() = LocaleIcon.current
}@Composable
fun AwesomeTheme(icons: AwesomeIcon = AwesomeTheme.icons,content: @Composable () -> Unit,
) {CompositionLocalProvider(LocaleIcon provides icons,) {content()}
}

要启用图标预览功能,在config.json文件中添加以下配置:

{"iconsRendering": {"codeCompletionEnabled": true,"gutterEnabled": true,"containerClassName": "com.yourpackage.AwesomeIcon"}
}

由于插件将类中的图标名称映射到实际资源以进行预览,变量名必须与资源匹配。我们的资源通常以“ic_”开头,因此可以在配置文件中添加映射器:

{"iconsRendering": {"propertyToResourceMapper": {"addPrefix": "ic_","convertToSnakeCase": true}}
}

保存配置文件后,您将看到图标预览效果:

为设计系统组件添加预览图标


此功能允许您为设计系统的组件添加预览图标,特别适用于拥有大量组件的UI套件。要启用该功能:

  1. .idea/kelp目录中添加一个名为dsComponentFunIcon的40x40 SVG图标。

注意:您还可以选择添加一个名为dsComponentFunIcon_dark.svg的暗色版本。

  1. config.json文件中添加以下配置:
{"componentFunHighlighting": {"functionFqnPrefix": "app.source.getcontact.uikit.component.","functionSimpleNamePrefix": "Getcontact" // 可选,用于限制仅针对具有特定前缀的组件}
}

插件将仅为您提供的包下的可组合组件添加此预览图标。

设置共享Live Templates ⌨️

即使可以通过不同方式实现,Kelp插件使得通过Git共享Live Templates变得更加容易。只需将Live Templates添加到config.json文件中:

{"liveTemplates": [{"abbreviation": "gth","text": "GetcontactTheme.dimensions.$CODE_COMPLETION$","description": "Writes \"GetcontactTheme.\""},{"abbreviation": "gco","text": "GetcontactTheme.colors.$CODE_COMPLETION$","description": "Writes \"GetcontactTheme.colors\""},{"abbreviation": "gty","text": "GetcontactTheme.typography.$CODE_COMPLETION$","description": "Writes \"GetcontactTheme.typography\""},{"abbreviation": "gic","text": "GetcontactTheme.icons.$CODE_COMPLETION$","description": "Writes \"GetcontactTheme.icons\""}// 其他模板...]
}

保存后,您可以通过Git共享这些模板文件。

结语

Kelp插件为Android Studio带来了诸多强大功能,极大地提升了开发体验。通过本文介绍的方法,您可以轻松设置颜色和图标预览功能,并在设计系统组件中添加预览图标。此外,Kelp插件还提供了便捷的Live Templates共享方式,进一步提高了团队协作效率。

好了,kelp基本功能介绍完毕,下面是kelp的仓库地址。

Github

https://github.com/ozontech/kelp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LNMP架构搭建Discuz论坛

LNMP架构是一种用于搭建Web服务器环境的常用架构,由Linux、Nginx、MySQL和PHP组成 组成功能Linux作为操作系统的基础,提供稳定的环境Nginx作为反向代理服务器,处理客户端的请求并将他们转发给后端的应用服务器MySQL作为关系型数据库管理系统…

7.2 数据结构

作业 #include <stdio.h> #include <string.h> #include <stdlib.h> struct student {char name[32];int age;double score; }s[3];void stu_input(struct student *s,int n) {printf("请输入%d个学生的信息&#xff08;姓名&#xff0c;年龄&#xff0…

【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow

一、介绍 服装识别系统&#xff0c;本系统作为图像识别方面的一个典型应用&#xff0c;使用Python作为主要编程语言&#xff0c;并通过TensorFlow搭建ResNet50卷积神经算法网络模型&#xff0c;通过对18种不同的服装&#xff08;‘黑色连衣裙’, ‘黑色衬衫’, ‘黑色鞋子’, …

Meta 发布 Meta 3D Gen 文本生成3D模型

Meta推出了 Meta 3D Gen &#xff08;3DGen&#xff09;&#xff0c;这是一种用于文本到 3D 资产生成的最先进的快速管道。3DGen 可在一分钟内提供具有高提示保真度和高质量 3D 形状和纹理的 3D 资产创建。 它支持基于物理的渲染 &#xff08;PBR&#xff09;&#xff0c;这是…

网口串口(Serialport)服务器

文章所用工具http://t.csdnimg.cn/2gIR8http://t.csdnimg.cn/2gIR8 搭建服务器界面 操作配置文件保存方式类 public string FileName { get; set; }public IniHelper(string name) {this.FileName name; //在构造函数中给路径赋值} 1 先导入c语言进行读取操作ini文件的方法 …

Python基于you-get下载网页上的视频

​ 1.python 下载地址 下载 : https://www.python.org/downloads/ 2. 配置环境变量 配置 python_home 地址 配置 python_scripts 地址 在path 中加入对应配置 3. 验证 ​ C:\Users>python --version Python 3.12.4C:\Users>wheel version wheel 0.43.04. 下载 c…

Python从入门到放弃——浮点型变量

浮点型变量 前言 上一篇文章我们研究了整数类型变量&#xff0c;本次我们来开始研究一下浮点类型变量。 浮点类型 浮点数在计算机编程中扮演着重要的角色。它们是一种特殊的数据类型&#xff0c;用于存储和处理小数或实数。在Python中&#xff0c;浮点数是由小数点分隔的…

迎接创新浪潮!RFID国军标助力数字化装备场转型

随着大数据、物联网的飞速发展&#xff0c;数字化转型已成为军事发展的核心战略之一。在这一重大历史进程中&#xff0c;广州一芯未来的RFID国军标呈现出独特而重要的作用。它不仅提升了装备管理的效率和准确性&#xff0c;还增强了装备的安全保障和资源配置的合理性。它以高效…

SpringMVC基础详解

文章目录 一、SpringMVC简介1、什么是MVC2、MVC架构模式与三层模型的区别3、什么是SpringMVC 二、HelloWorld程序1、pom文件2、springmvc.xml3、配置web.xml文件4、html文件5、执行Controller 三、RequestMapping注解1、value属性1.1、基础使用1.2、Ant风格&#xff08;模糊匹配…

在CenteOs7上安装mysql8.0(Super详细版)

在CenteOs7上安装mysql8.0 为什么用Mysql8.0&#xff1f;如何下载下载地址需要提前准备下载步骤 服务器上安装如何上传到服务器&#xff1f;通过wget下载到服务器并解压 开始安装非必须安装如果全部安装执行顺序 安装完后&#xff0c;启动mysql使用“systemctl”检测mysqld服务…

充分利用智慧校园人事系统,提升党政职务管理

智慧校园人事系统中的党政职务管理功能&#xff0c;是专为高校及教育机构设计的&#xff0c;旨在高效、精确地处理与党政职务相关的各类事务&#xff0c;包括职务任命、任期管理、职责分配、考核评估等&#xff0c;以信息化手段促进党务及行政工作的透明化、规范化。 该模块首先…

Jest是什么软件?

Jest是一个由Facebook开发的开源JavaScript测试框架&#xff0c;它专为JavaScript项目的测试而设计&#xff0c;特别适用于React和Node.js环境。Jest以其简单的配置、高效的性能和易用性而闻名&#xff0c;成为现代JavaScript项目中不可或缺的测试工具。以下是关于Jest的详细解…

《Windows API每日一练》8.1 button控件二

8.1.4 按钮 在BTNLOOK中显示的前两个按钮是“按键”按钮&#xff08;push button&#xff09;。此类按钮是一种带有 文本的矩形&#xff0c;这些文本是在CreateWindow调用的窗口文本参数中提供的。而CreateWindow 或MoveWindow调用中指定的宽度和高度则确定了矩形的大小。文本…

面对全球新能源汽车合作发展创维汽车如何实现共赢

由全球新能源汽车合作组织(筹)主办、中国电动汽车百人会承办的首届全球新能源汽车合作发展论坛(GNEV2024)于6月27日&#xff0c;6月28日在新加坡金沙会议展览中心召开。创维汽车国际营销公司总经理齐奎源受邀参会并作出分享。 本届大会以推动全球新能源汽车产业协同发展与合作…

C语言课设--读取文件并统计数据

读取文件并统计数据 // 统计记事本英文字符数 //功能 &#xff1a; 读 文件 a.txt 统计出各种 数字 大写字母 小写字母 0~9 A~Z a ~z各有多少个 程序主体框架如下&#xff1a; #include<stdio.h> int a[128]{0};//其中数组元素a[i]保存 ASCII 码为i的字符的数量 v…

【CSS in Depth 2 精译】2.4 视口的相对单位

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位 ✔️2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.4 视口的相对单位 前面介绍过的 em 和 rem 是相对于 font-size 定义的&#xff0…

rust + mingw安装教程

0. 说明 windows上安装rust时&#xff0c;需要在电脑上安装C/C构建工具。推荐的的两种工具链可以选择&#xff1a; visual studio build toolsmingw 官方推荐使用visual studio&#xff0c;若你的电脑上已经安装了visual studio&#xff0c;则无需再安装&#xff0c;直接安装…

单目相机减速带检测以及测距

单目相机减速带检测以及测距项目是一个计算机视觉领域的应用&#xff0c;旨在使用一个摄像头&#xff08;单目相机&#xff09;来识别道路上的减速带&#xff0c;并进一步估计车辆与减速带之间的距离。这样的系统对于智能驾驶辅助系统&#xff08;ADAS&#xff09;特别有用&…

基于tensorflow2的目标检测完整实现过程

序言 虽然tf1仍然在维护&#xff0c;但tf2毕竟是主流&#xff0c;如果不是项目有明确要求&#xff0c;建议直接选择tf2。本文以tf2为例展开&#xff0c;总结从环境准备到使用自己的数据和tensorflow预训练模型进行快速训练和调用。对tensorflow和目标检测算法有深入了解的&…