Android Studio 引入Xui框架-简单应用

Android Studio Flamingo | 2022.2.1 Patch 2 

Android 11开发、Gradle Version 8.0、 jdk17

源代码:GitHub - xuexiangjys/XUI: 💍A simple and elegant Android native UI framework, free your hands! (一个简洁而优雅的Android原生UI框架,解放你的双手!)

参考手册:

Home · xuexiangjys/XUI Wiki · GitHub

快速继承Demo:

GitHub - xuexiangjys/TemplateAppProject: Android template project, fast construction (integrated XUI, XUtil, XAOP, XPage, XUpdate, XHttp2, Umeng Statistics and Walle multi-channel package). Android空壳模板工程,快速搭建(集成了XUI、XUtil、XAOP、XPage、XUpdate、XHttp2、友盟统计和walle多渠道打包)

1.在settings.gradle文件中加入依赖   maven { url "https://jitpack.io" }  

(点击 Sync Now 同步下)

dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()//导入mavenmaven { url "https://jitpack.io" }}
}

2.在build.gradle 引入Xui   implementation 'com.github.xuexiangjys:XUI:1.1.5'

(点击 Sync Now 同步下)

dependencies {//xuiimplementation 'com.github.xuexiangjys:XUI:1.1.5'implementation 'androidx.appcompat:appcompat:1.4.1'implementation 'com.google.android.material:material:1.5.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.3'testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.3'androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

3. 写个类继承 Application 重写onCreate方法 加入

         XUI.init(this); //初始化UI框架
        XUI.debug(true);  //开启UI框架调试日志

import android.app.Application;import com.xuexiang.xui.XUI;public class XuiActivity extends Application {@Overridepublic void onCreate() {super.onCreate();XUI.init(this); //初始化UI框架XUI.debug(true);  //开启UI框架调试日志}
}

4.在AndroidManifest.xml中加入 这个类  android:name=".XuiActivity"

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"><application<!-- 加入-->android:name=".XuiActivity"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.MyAppday3"><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

5.把样式改一下

基础主题类型:大平板(10英寸, 240dpi, 1920*1200):XUITheme.Tablet.Big小平板(7英寸, 320dpi, 1920*1200):XUITheme.Tablet.Small手机(4.5英寸, 320dpi, 720*1280):XUITheme.Phone<resources xmlns:tools="http://schemas.android.com/tools"><!-- Base application theme. --><style name="Base.Theme.MyAppday3" parent="XUITheme.Phone"><!-- Customize your light theme here. --><!-- <item name="colorPrimary">@color/my_light_primary</item> --></style><style name="Theme.MyAppday3" parent="Base.Theme.MyAppday3" />
</resources>

6.即可在布局中添加相关组件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:gravity="center"><com.xuexiang.xui.widget.button.roundbutton.RoundButtonstyle="@style/RoundButton.Auto"android:layout_marginTop="20dp"android:text="默认圆角大小" /><com.xuexiang.xui.widget.button.roundbutton.RoundButtonstyle="@style/RoundButton.Auto"android:layout_marginTop="20dp"android:text="自定义样式"android:textColor="@color/xui_default_round_btn_white_text"app:rb_backgroundColor="@color/xui_round_btn_green_bg"app:rb_borderColor="@color/xui_round_btn_green_bg" /><com.xuexiang.xui.widget.button.shadowbutton.ShadowButtonandroid:layout_width="100dp"android:layout_height="100dp"android:layout_margin="16dp"app:sb_ripple_duration="2000"android:background="@mipmap/ic_launcher"app:sb_ripple_color="@color/app_color_theme_8"app:sb_color_pressed="@color/app_color_theme_6"app:sb_radius="6dp" /><com.xuexiang.xui.widget.button.ButtonViewstyle="@style/ButtonView.Blue"android:layout_margin="20dp"/><com.xuexiang.xui.widget.button.ButtonViewstyle="@style/ButtonView.Green"android:layout_margin="20dp"/><com.xuexiang.xui.widget.button.ButtonViewstyle="@style/ButtonView.Gray"android:layout_margin="20dp"/>
<!-- 倒计时button--><com.xuexiang.xui.widget.button.CountDownButtonandroid:id="@+id/bt_countdown4"style="@style/Button.Blue"android:text="获取验证码" /><com.xuexiang.xui.widget.button.switchbutton.SwitchButtonandroid:id="@+id/sb_ios"style="@style/SwitchButtonStyle"android:layout_width="wrap_content"android:layout_height="wrap_content"app:swb_animationDuration="300"app:swb_backDrawable="@drawable/ios_back_drawable"app:swb_thumbDrawable="@drawable/ios_thumb_selector"app:swb_thumbMarginBottom="-8dp"app:swb_thumbMarginLeft="-5dp"app:swb_thumbMarginRight="-5dp"app:swb_thumbMarginTop="-2.5dp"app:swb_thumbRangeRatio="1.4" /><com.xuexiang.xui.widget.button.RippleViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="?attr/xui_config_content_spacing_horizontal"app:rv_type="simpleRipple"><TextViewandroid:layout_width="match_parent"android:layout_height="100dp"android:layout_gravity="center"android:layout_marginStart="?attr/xui_config_content_spacing_horizontal"android:layout_marginEnd="?attr/xui_config_content_spacing_horizontal"android:background="@color/app_color_theme_1"android:gravity="center"android:text="单波纹"android:textColor="@color/xui_config_color_white"android:textSize="20sp" /></com.xuexiang.xui.widget.button.RippleView><!-- 悬浮按钮--><com.google.android.material.floatingactionbutton.FloatingActionButtonandroid:layout_width="50dp"android:layout_height="50dp"app:borderWidth="10px"android:backgroundTint="@color/app_color_theme_4"app:rippleColor="@color/app_color_theme_3"/><com.xuexiang.xui.widget.button.SwitchIconViewandroid:id="@+id/switchIconView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:padding="8dp"app:siv_disabled_alpha=".5"app:siv_disabled_color="#dadada"app:siv_enabled="true"app:siv_tint_color="#ffb700"app:srcCompat="@drawable/ic_camera" /><com.xuexiang.xui.widget.button.SmoothCheckBoxandroid:id="@+id/scb"android:layout_width="40dp"android:layout_height="40dp"android:layout_margin="5dp"android:paddingTop="10dp"app:scb_color_checked="@color/app_color_theme_1" /><com.xuexiang.xui.widget.button.shinebutton.ShineButtonandroid:id="@+id/shine_button"android:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"app:sb_checked_color="#f26d7d"app:sb_icon_image="@drawable/ic_heart"app:sb_normal_color="@android:color/darker_gray" /><com.xuexiang.xui.widget.button.shinebutton.ShineButtonandroid:id="@+id/shine_button_1"android:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@android:color/darker_gray"app:sb_allow_random_color="false"app:sb_big_shine_color="#FF6666"app:sb_checked_color="#FF6666"app:sb_click_animation_duration="200"app:sb_enable_flashing="false"app:sb_icon_image="@drawable/ic_like"app:sb_normal_color="@android:color/darker_gray"app:sb_shine_animation_duration="1500"app:sb_shine_count="15"app:sb_shine_distance_multiple="1.5"app:sb_shine_turn_angle="10"app:sb_small_shine_color="#CC9999"app:sb_small_shine_offset_angle="20" /><!-- button xui--><com.xuexiang.xui.widget.button.ButtonViewandroid:id="@+id/buttonView"style="@style/ButtonView.Green"android:layout_width="50dp"android:layout_height="50dp"android:layout_marginTop="237dp"android:layout_marginBottom="69dp"app:layout_constraintBottom_toTopOf="@+id/textView"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></LinearLayout></ScrollView>
</LinearLayout>

实例图: 

相关资源:导入项目后,在源项目码中查找 Ctrl+N 

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

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

相关文章

录屏软件自动开启录视频,是如何实现的?

工作要留痕&#xff0c;作为职场人的一项必备技能&#xff0c;因此许多人在做一些重要操作的时候&#xff0c;就会提前开启录屏软件&#xff0c;把操作的每一个步骤进行录制&#xff0c;以避免在出现问题的时候进行检查。当每天都需要在固定的时间点重复某项工作的时候&#xf…

【力扣】从零开始的动态规划

【力扣】从零开始的动态规划 文章目录 【力扣】从零开始的动态规划开头139. 单词拆分解题思路 45. 跳跃游戏 II解题思路 5. 最长回文子串解题思路 1143. 最长公共子序列解题思路 931. 下降路径最小和解题思路 开头 本力扣题解用5题来引出动态规划的解题步骤&#xff0c;用于本…

竞赛选题 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 行人车辆目标检测计数系统 …

【计算机网络笔记】路由算法之距离向量路由算法

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

DAY60 84.柱状图中最大的矩形

84.柱状图中最大的矩形 题目要求&#xff1a;给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 思路 单调栈 本地单调栈的解法和接雨水的题目是遥相呼…

【docker】虚拟化和docker容器概念

基础了解 IAAS&#xff1a; 基础设施服务&#xff0c;&#xff08;只提供基础设施&#xff0c;没有系统&#xff09; **SAAS&#xff1a; ** 软件即服务&#xff0c;&#xff08;提供基础设施和系统&#xff09; PAAS&#xff1a; 平台即服务&#xff0c;&#xff08;提供基…

《白帽子讲web安全》

第十四章 PHP安全 文件包含漏洞是“代码注入”的一种。“代码注入”这种攻击&#xff0c;其原理就是注入一段用户能控制的脚本或代码&#xff0c;并让服务器端执行。“代码注入”的典型代表就是文件包含&#xff08;File Inclusion&#xff09;。文件包含可能会出现在JSP、PHP…

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测 目录 时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现HPO-ELM猎食者算法优化极限学习机时间序列预测 1.data为数据集…

【C++ 学习 ㊴】- 详解 C++ 的 I/O 流

目录 一、C 的 I/O 流 二、C 的标准 I/O 流 三、C 的文件 I/O 流 一、C 的 I/O 流 C 语言有一套完成数据读写&#xff08;I/O&#xff09;的解决方案&#xff1a; 使用 scanf()、gets() 等函数从键盘读取数据&#xff0c;使用 printf()、puts() 等函数向屏幕输出数据&#…

②【Hash】Redis常用数据类型:Hash [使用手册]

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Redis Hash ②Redis Hash 操作命令汇总1. hset…

Week-T10 数据增强

文章目录 一、准备环境和数据1.环境2. 数据 二、数据增强&#xff08;增加数据集中样本的多样性&#xff09;三、将增强后的数据添加到模型中四、开始训练五、自定义增强函数六、一些增强函数 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f…

【Java】异常处理及其语法、抛出异常、自定义异常(完结)

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;道阻且长&#xff0c;行则将至 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录 一.&#x1f510;异…

Java,数据结构与集合源码,数据结构概述

目录 数据结构概念&#xff1a; 数据结构的研究对象&#xff1a; 研究对象一&#xff0c;数据间逻辑关系&#xff1a; 研究对象二&#xff0c;数据的存储结构&#xff08;或物理结构&#xff09;&#xff1a; 研究对象三&#xff1a;运算结构 数据结构的相关介绍&#xff…

maven pom引入依赖不报红,但是项目Dependencies中没有引入jar包

前言 小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识&#xff0c;有兴趣的小伙伴可以关注一下&#xff01; 也许一个人独行&#xff0c;可以走的很快&#xff0c;但是一群人结伴而行&#xff0c;才能走的更远&#xff01;让我们在成长的道路上互相学习&…

vue中data属性为什么是一个函数?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-data属性 目录 为什么data属性是一个函数而不是一个对象&#xff1f; 一、实例和组件定义dat…

Apache Airflow (十三) :Airflow分布式集群搭建及使用-原因及

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

U4_1:图论之DFS/BFS/TS/Scc

文章目录 一、图的基本概念二、广度优先搜索&#xff08;BFS&#xff09;记录伪代码时间复杂度流程应用 三、深度优先搜索&#xff08;DFS&#xff09;记录伪代码时间复杂度流程时间戳结构BFS和DFS比较 四、拓扑排序一些概念有向图作用拓扑排序 分析伪代码时间复杂度彩蛋 五、强…

复杂数据统计与R语言程序设计实验一

1.下载并安装R语言软件&#xff0c;熟悉基本操作的命令及操作界面&#xff0c;掌握软件的使用方法&#xff08;提供学号加姓名的截图&#xff09;。 2.下载并安装Rstudio&#xff0c; &#xff08;提供运行代码及运行结果的截图&#xff09;。 3.下载并安装R包DT&#xff0c;…

树莓派的的串口通信协议

首先&#xff0c;回顾一下串口的核心知识点&#xff0c;也是面试重点&#xff1a; 串口通信通常使用在多机通讯中串口通信是全双工的决定串口通信的成功与否的是 数据格式 和 波特率数据格式&#xff1a;1. 数据位 2.停止位 3. 奇偶校验位 树莓派恢复串口 回忆前几节树莓派刷机…

Tensorrt 实现 yolov5-cls 遇到的问题

yolov5-6.2增加了分类训练、验证、预测和导出&#xff08;所有 11 种格式&#xff09;&#xff0c;还提供了 ImageNet 预训练的 YOLOv5m-cls、ResNet&#xff08;18、34、50、101) 和 EfficientNet (b0-b3) 模型. 官方Git : https://github.com/ultralytics/yolov5 分类模型与…