如何搞一个在线的Shape生成

news2025/1/10 6:00:44

Shape是Android中一个必不可少的资源,很多的背景,比如圆角,分割线、渐变等等效果,几乎都有它的影子存在,毕竟写起来简单便捷,使用起来也是简单便捷,又占用内存小,谁能不爱?无论是初级,还是中高级,创建一个shape文件,相信大家都是信手拈来。

虽然在项目里,我们可以直接复制一个Shape文件,改一改,就能很简单的实现,但是为了更方便的创建,直接拿来可以用,于是搞了一个在线的Shape生成,目前包含了,实心、空心、渐变的模式,希望可以帮助到大家,虽然是属于造轮子了,但猜测一下,估计有需要的人,哈哈~

今天的内容大致如下:

1、在线生成Shape效果

2、如何实现这样一个在线生成平台

3、具体的主要代码实现

4、总结及问题须知

一、在线生成Shape效果

效果不是很好,毕竟咱也不是搞UI的,不过功能均可用,问题不大,目前就是左侧功能选择区域,右侧是效果及代码展示区域,包含文件的下载操作。

在线地址:https://abnerming888.github.io/vip/shape/shape.html

实际效果如下:

二、如何实现这样一个在线生成平台

其实大家可以发现,虽然是辅助生成的Android功能,但本身就是网页,所以啊,懂得Web这是最基本的,不要求多么精通,但基本的页面得需要掌握,其次就是,清楚自己要实现什么功能,得有思路,比如这个Shape,那么你就要罗列常用的几种Shape类型,其主要的代码是如何呈现的,这是最重要的,搞定下面两步问题不大。

1、Shape代码模板

Shape的生成,其实是根据模板来的,只不过根据动态配置,改其中的参数而已,所以啊,是非常简单的,罗列基本的模板后,就可以选择性的更改。

实心模板

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="10dp"></corners>
    <solid android:color="#ff0000" />
</shape>

空心模板

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <stroke
        android:width="1dp"
        android:color="#ff0000" />
    <corners android:radius="10dp" />
 <solid android:color="#171616"/>
</shape>

渐变模板

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <gradient
        android:angle="90"
        android:centerColor="#000000"
        android:endColor="#ff0000"
        android:startColor="#ff0000"
        android:type="linear" />
    <corners android:radius="10dp"></corners>
</shape>

在上边的模板中,其实需要更改的元素并不是很多,无非就是,颜色值,角度大小,边框等信息,这些信息,需要用户自己选择,所以需要抛给用户触发。

2、Web页面编写及上传平台

有了相关模板,那么就需要绘制UI进行实现了,其实在Android studio里的插件最合适不过了,插件也已经实现了,这个我们后面说,目前的在线,就需要大家进行Web绘制了,也就是Html、Css、JavaScript相关的技术了,相对于Android而言,还是比较简单的,编码思想都是一样的,具体的编写,大家可以自行发挥。

其实大家最关心的是,我们的页面,如何让别人进行使用,一般的情况下,服务器是必须的,如果我们没有服务器,其实也有很多的三方免费的托管,比如Github上,Github搭建静态网站,大家可以去搜,网上很多资料,按照步骤来就可以轻松实现了。

三、具体的主要代码实现

1、颜色选择实现

颜色用到了coloris插件,它可以在触摸输入框的时候,弹出颜色选择框,效果如下图:

使用起来也是很简答,在标签后面增加data-coloris属性即可。

<input type="text" style="width: 75%" class="input_color" value="#ff0000" data-coloris/>

2、下载代码实现

下载代码是用到了一个三方插件,FileSaver.js,下载的时候,也是非常的简单:

 let blob = new Blob([code], {type: "text/plain;charset=utf-8"});
 saveAs(blob, fileName + ".xml");

3、常规代码实现

常规代码,确实没啥好说的,无非就是Html、Css、JavaScript,大家可以直接右键看源代码即可。

四、总结及问题须知

其实大家可以发现,目前的生成,颜色也好,角度边框也好,都是固定写死的,其实,在实际的项目开发中,这些都是在资源里进行配置好的,直接选择资源里的即可,其实应该加个,可配置的参数,只配置一次,就可以动态的选择项目中的资源。

在线的毕竟还不是很方便,其实自己一直在搞一个自动化脚手架,可以直接生成到项目中,目前是针对公司里架构,不太方便开源出来,但2023年,改为自己的框架后,会给大家开源出来,很多代码,真的可以自动生成,真是方便了很多。

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

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

相关文章

【Python游戏】咱就说Python实现一个蔡徐坤大战篮球的小游戏,可还行? | 附带源码

前言 halo&#xff0c;包子们下午好 小编作为一个鸡你太美的忠实黑粉&#xff0c;怎么能不实行一个蔡徐坤大战篮球的小游戏呢 今天小编用Python给大家实现啦 今天不为别的&#xff0c;就是想督促大家学习 废话不多说&#xff0c;直接开整 相关文件 关注小编&#xff0c;私信…

GoDiagram.Winforms完全重写版-Crack

介绍GoDiagram 10 – 用于 .NET 项目的新图表库。 GoDiagram 10 是 GoDiagram 的完全重写&#xff0c;基于 GoJS API&#xff0c;具有相同的功能。这包括节点和链接的模板、数据绑定、JSON 模型数据格式、动画和许多其他功能。 在 C# 中为 .NET 构建图表 流程图 构建交互式流程…

安卓APP源码和设计报告——仿淘宝购物APP

2021—2022学年第二学期期末考试 《Android手机软件开发》实践考核 项目设计说明书 项目名称&#xff1a; 购物APP的设计与实现 专 业&#xff1a; 计算机科学与技术 学 号&#xff1a; 姓 名&#xff1a; 任课教师&#xff1a; 2022年6月12日 目 录 1.项目概述11 2…

磨金石教育摄影技能干货分享|优秀摄影欣赏—足球经典名画

世界杯正在如火如荼的进行&#xff0c;相信通过本次世界杯先进的转播技术&#xff0c;又会诞生一大批新的足球迷。而随着拍摄技术的进步&#xff0c;足球场上的许多精彩瞬间也被更清晰的抓拍下来。 1、c罗的惊讶 这张照片相信看过本届世界杯的朋友都不陌生&#xff0c;c罗做出…

[效率工具] Git下对敏感文件/内容的处理

&#x1f341;简介 &#x1f517; 相关资料 : 一文玩转Git 有时候我们提交代码到GitHub/Giglab平台, 发现一不小心把带有账号密码以及服务器地址的代码等敏感信息提交到公共平台,对于这种情况我们应该使用一些方案进行规避。下面就讨论下这些方案&#xff01; 方法一: 配置文件…

『SnowFlake』雪花算法的详解及时间回拨解决方案

&#x1f4e3;读完这篇文章里你能收获到 图文形式为你讲解原生雪花算法的特征及原理了解时间回拨的概念以及可能引起发此现象的操作掌握时间回拨的解决方案—基于时钟序列的雪花算法关于雪花算法的常见问题解答 文章目录一、原生的雪花算法1. 简介2. 特征3. 原理3.1 格式&…

什么软件可以去除照片水印?这3种方法可以帮你轻松搞定

大家有过这样的烦恼吗&#xff1f;在网上看到一张喜欢的图片&#xff0c;想要将它保存下来做壁纸&#xff0c;但是却发现图片里面有个大大的水印&#xff0c;十分影响效果。或者是在网上看到一张喜欢的头像&#xff0c;里面也有着一个大大的水印&#xff0c;我们该放弃这张图片…

【能源物联网】物联网体系结构与建筑能源管理系统的相关性分析

摘要&#xff1a; 在能源形势紧张的大趋势下&#xff0c;高能耗的大型公共建筑能源管理系统的建设逐渐受到重视&#xff0c;以物联网技术及基础的建筑能源管理平台可以提供即时、准确、高效的能源管理策略。系统阐述了结合物联网技术的建筑能源管理构建方法&#xff0c;对物联…

低代码助力制造型企业——工时管理系统

生产管理是制造企业的核心职能之一,工时管理是生产管理的重要方法和手段&#xff0c;可以帮助更好的掌控交货期&#xff0c;控制成本&#xff0c;更准确的安排生产计划。在当前激烈竞争的市场环境下&#xff0c;企业必须以现代化的理念结合不断改进的管理方法才能及时抓住发展机…

Aspose.GIS 22.10.0 for .NET Crack

概述 获取最完整和最强大的 API&#xff0c;以创建受其启发并基于它们的新项目&#xff0c;而不是通过为您编写此处已有的内容来浪费资源和精力。适用于 .NET 的 GIS API 是一种使用 GIS 数据的简单方法完全托管的代码&#xff0c;具有简单的界面、部署和数据安全性。 我们的 .…

Python FastAPI 多参数传递

Python FastAPI请求参数传递 FastAPI多参数传递类型 FastAPI通过模板来匹配URL中的参数列表&#xff0c;大致有如下三类方式传递参数&#xff1a; 路径参数传递&#xff1a;获取自定义的构造URL中的参数GET参数传递&#xff1a;获取一个URL后面带的?param11&param22这种…

ubuntu20.04+anaconda+yolov5训练kitti数据集

yolov5安装流程 一、Anaconda安装 1.Anaconda官网:https://www.anaconda.com/products/distribution 2.点击Download&#xff0c;下载For Linux版本 3.到下载的文件夹&#xff0c;输入&#xff1a; bash ~/Downloads/Anaconda3-xxxxxxxxx.sh # 根据下载的文件不同&#xff…

火爆全网的ChatGPT机器人,你玩了吗?

最近几天&#xff0c;由OpenAI公司发布的ChatGPT聊天机器人火了&#xff0c;小杨也怀着对新鲜事物的好奇&#xff0c;亲自体验了一下这个火爆全网&#xff0c;让人沉迷其中无法自拔的ChatGPT聊天机器人&#xff0c;经过体验&#xff0c;我只想用一个字来表达我的感受&#xff0…

⚡通信管理模块⚡

目录 &#x1f333;.通信管理模块的介绍 &#x1f333;.通信模块的设计 &#x1f333;.ListShow函数 &#x1f333;.UpLoad函数 &#x1f333;.DownLoad函数 下载的断点续传 &#x1f333;.通信管理模块的介绍 通信管理模块管理着服务器与浏览器之间的通信: 当服务器收…

猿如意工具-【SwitchHosts】详情介绍

一、什么是猿如意&#xff1f; 在发表文章的契机下&#xff0c;看到了【猿如意】这个名词。处于好奇&#xff0c;点击进行了解。 发现是我们熟悉的CSDN提供的一个面向开发者的辅助开发工具箱&#xff0c;猿如意的意思是-程序猿&#xff08;员&#xff09;的如意兵器。 它提供…

Elasticsearch与spring data整合api变化

记录 spring-data-elasticsearch 版本api变化 https://blog.csdn.net/zlpzlpzyd/article/details/128255792 spring boot 2.7.x 对应 spring-data-elasticsearch 4.4.x 排查问题之前先看一下上述链接中版本的对应关系 org.springframework.data.elasticsearch.core.Elastics…

如何搭建真实的性能测试环境?

在编写脚本的同时&#xff0c;执行场景之前需要完成测试环境的搭建工作&#xff0c;这里包括硬件和软件环境的搭建。根据性能测试计划中的测试环境规划&#xff0c;完成对整个测试环境的搭建。由于性能测试的特殊性&#xff0c;整个测试环境需要在严格的独立监控下管理&#xf…

微信建群怎么建?2个方法,快速学会!

​如果你想建立一个微信群来提高工作效率&#xff0c;你该怎么办&#xff1f;微信建群怎么建&#xff0c;找了很长一段时间不到。下面小编分享2个微信建群的方法&#xff0c;可以让您快速学习如何建立微信群&#xff01;感兴趣的小伙伴可以来看看哦&#xff01; 微信建群方法一…

JDBC第一章节(从概念到操作)

一、数据持久化存储回顾 1、持久化概述 2. JAVA中的数据存储 二、JDBC概述 1.概述 1.1 概述&#xff1a; 1.2 没有jdbc之前存在一些问题 1.3 有jdbc 之后 1.4 JDBC本质 1.5 优点 三、JDBC API 四、初始JDBC 操作数据库 1、操作步骤概述 2、实操步骤 2.1 导入MySQ…

Vue 实现拖拽模块(三)自定义拖拽组件的样式

上文介绍了 自定义拖拽组件位置 的简单实现&#xff0c;本文将继续给大家分享如何自定义拖拽组件位置的简单实现&#xff0c;文中通过示例代码介绍&#xff0c;感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue 自定义拖拽组件的样式&#xff0c;具体如下&#xff1a; 支持通过…