饭后Android 第三餐 您所在的位置:网站首页 安卓对话框的使用教程 饭后Android 第三餐

饭后Android 第三餐

2024-07-03 18:15| 来源: 网络整理| 查看: 265

饭后Android 第三餐-XUI框架(XUI介绍,使用方法,控件使用(九个Button,导航栏,可伸缩布局,顶部弹出框)) 1.XUI介绍2.使用方法1 添加依赖2 初始化XUI设置 3.控件使用1.Button1.Buttonview2.RippleView-带波纹效果3.ShineButton-带动画4.SmoothCheckBox-动画切换5.SwitchIconView-动画切换6.FloatingActionButton-悬浮按钮7.ShadowButton-点击时背景阴影8.RoundButton9.CountDownButton-带倒计时 2.导航栏1.TitleBar 3.可伸缩布局1.ExpandableHorizontalFragment(水平伸缩)2.ExpandableSimpleFragment(垂直伸缩) 4.顶部弹出框 XUI–GitHub开源网址

1.XUI介绍

作者语录:一个简洁而又优雅的Android原生UI框架,解放你的双手!

XUI涵盖了大部分的UI组件,TextView、Button、EditText、ImageView、Spinner、Picker、Dialog、PopupWindow、ProgressBar、LoadingView、StateLayout、FlowLayout、Switch、Actionbar、TabBar、Banner、GuideView、BadgeView、MarqueeView、WebView、SearchView等一系列的组件和丰富多彩的样式主题。

组件图片展示 在这里插入图片描述

工具图片展示 在这里插入图片描述 拓展图片展示 在这里插入图片描述 这些控件在官方文档中并没有一一提到,官方文档只对常用的一些控件进行了讲解,但是这个XUI框架是开源的,所以这些控件在源码中都可以找到使用方法,其实自己挖掘出的知识会更觉得有成就感,所以如果你对哪个控件感兴趣,但是官方文档又没有的话,那就尽情的去探索吧!

2.使用方法 1 添加依赖

1.在项目的 build.gradle 的 repositories 下添加:

maven { url "https://jitpack.io" }

在这里插入图片描述

然后接着在dependencies下添加 (推荐使用)

//androidx项目 implementation 'com.github.xuexiangjys:XUI:1.1.5' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'com.google.android.material:material:1.1.0' implementation 'com.github.bumptech.glide:glide:4.11.0'

【注意】如果你的项目目前还未使用androidx,请使用如下配置:

(官方文档给的建议,但是我个人不推荐用这个,一是因为依赖版本低不仅要重构依赖,而且因为这个依赖库缺少一个配置文件会导致运行不了)在这里插入图片描述

//support项目 implementation 'com.github.xuexiangjys:XUI:1.0.9-support' implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.android.support:design:28.0.0' implementation 'com.github.bumptech.glide:glide:4.8.0'

我这里用的是上面版本高的的依赖包(如图) 在这里插入图片描述

2 初始化XUI设置

第一步,新建一个 类Myapplication 然后继承 Application (application会在activity之前运行) 记得!!!在mainfests里注册(不然不会生效)

android:name=".Myapplication"

在这里插入图片描述 然后再在oncreat()方法下添加代码

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

在这里插入图片描述 第二步.调整应用的基础主题(必须)

必须设置应用的基础主题,否则组件将无法正常使用!必须保证所有用到XUI组件的窗口的主题都为XUITheme的子类,这非常重要!! 也就是说要给成XUI设定的主题,不然会因为不适配,控件显示不出来或者运行报错

基础主题类型:

大平板(10英寸, 240dpi, 1920*1200):XUITheme.Tablet.Big小平板(7英寸, 320dpi, 1920*1200):XUITheme.Tablet.Small手机(4.5英寸, 320dpi, 720*1280):XUITheme.Phone @color/colorPrimary @color/colorPrimaryDark @color/colorAccent

在这里插入图片描述

当然也可以在Activity刚开始时调用如下代码动态设置主题(我比较喜欢用上面那种,直接改了)

@Override protected void onCreate(Bundle savedInstanceState) { XUI.initTheme(this); super.onCreate(savedInstanceState); ... }

3.调整字体库(对字体无要求的可省略)–这里我没有用到就不加了

(1)设置你需要修改的字体库路径(assets下)

//设置默认字体为华文行楷,这里写你的字体库 XUI.getInstance().initFontStyle("fonts/hwxk.ttf");

(2)在项目的基础Activity中加入如下代码注入字体.

注意:1.1.4版本之后使用如下设置注入

@Override protected void attachBaseContext(Context newBase) { //注入字体 super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase)); }

注意:1.1.3版本及之前的版本使用如下设置注入

@Override protected void attachBaseContext(Context newBase) { //注入字体 super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); }

然后运行,会报错,说 minSdkVersion 过低 在这里插入图片描述

解决方法:把minSdkVersion改为 23,问题就会解决 (别问为啥是23,因为这是我一个一个试验出来的,乔丹号码)

在这里插入图片描述

运行成功,现在添加一个基础控件,在布局文件添加

在这里插入图片描述 OK,到这一步其实你就已经打开了XUI的这个城堡的大门 ,你可以去看各种堡垒的美景。

3.控件使用

官方组件使用文档传送门

官方文档已经很详细的讲了常用控件的布局文件属性,我在这列举按钮篇和几个其他控件。

1.Button

其实大多button的逻辑代码都一样,几个特殊的按钮我在上一讲有讲到,感兴趣的小伙伴可以;了解

饭后Android 第二餐-复选框CheckBox+开关按钮Switch+单选按钮RadioButton 在这里插入图片描述 演示 在这里插入图片描述

1.Buttonview

布局文件

逻辑代码

mButtonView=findViewById(R.id.buttonView); mButtonView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Mainactivity","ButtonView按钮点击了一次"); } }); 2.RippleView-带波纹效果

布局文件

逻辑代码

mRippleView=findViewById(R.id.rippleView); mRippleView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Mainactivity","RippleView按钮点击了一次"); } }); 3.ShineButton-带动画

布局文件

图标资源下载

4.SmoothCheckBox-动画切换

布局文件

5.SwitchIconView-动画切换

布局文件

图标资源下载 逻辑代码

//变量声明 SwitchIconView mSwitchIconView; int i=1; mSwitchIconView=findViewById(R.id.switchIconView); mSwitchIconView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (i>0) { mSwitchIconView.setIconEnabled(true); i*=-1; }else{ mSwitchIconView.setIconEnabled(false); i*=-1; } } }); 6.FloatingActionButton-悬浮按钮

布局文件

7.ShadowButton-点击时背景阴影

布局文件

8.RoundButton

布局文件

逻辑代码

mRoundButton=findViewById(R.id.roundButton); mRoundButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Mainactivity","RoundButton按钮点击了一次"); } }); 9.CountDownButton-带倒计时

布局文件

这个有点意思,可以不在java文件里写代码就可以实现点击倒计时

2.导航栏

官方文档给出了几种, 这里讲一种我常用的吧

1.TitleBar

布局文件

这里视图显示不出来,没关系,运行就会有 在这里插入图片描述 点击事件

mTitleBar=findViewById(R.id.titleBar); mTitleBar.setLeftClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Mainactvity","点击返回"); } });

演示 在这里插入图片描述

3.可伸缩布局

这里我讲到两个伸缩布局,一个是水平伸缩,一个是垂直伸缩

演示 在这里插入图片描述

Mainactivity布局文件,很简单就是两个fragment布局

在这里插入图片描述 java代码

public class MainActivity extends AppCompatActivity { BlankFragment mBlankFragment=new BlankFragment(); BlankFragment2 mBlankFragment2=new BlankFragment2(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getSupportFragmentManager().beginTransaction().replace(R.id.frameLayout,mBlankFragment).commit(); getSupportFragmentManager().beginTransaction().replace(R.id.frameLayout2,mBlankFragment2).commit(); } } 1.ExpandableHorizontalFragment(水平伸缩)

布局文件

逻辑代码

public class BlankFragment extends Fragment { ExpandableLayout expandableLayout; AppCompatImageView expandButton; int i=1; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_blank, container, false); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); expandableLayout=getActivity().findViewById(R.id.expandable_layout); expandButton=getActivity().findViewById(R.id.expand_button); expandableLayout.setOnExpansionChangedListener((expansion, state) -> { if (expandButton != null) { expandButton.setRotation(expansion * 180); } }); expandButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (i>0) { expandableLayout.toggle(); expandButton.setSelected(true); i*=-1; }else { expandableLayout.toggle(); expandButton.setSelected(false); i*=-1; } Log.i("expandButton","--------"+i); } }); } }

这里有个报错 在这里插入图片描述 解决方法 如图所示,等待同步一会就解决了 在这里插入图片描述 运行 在这里插入图片描述 在这里插入图片描述

2.ExpandableSimpleFragment(垂直伸缩)

布局代码

逻辑代码

public class BlankFragment2 extends Fragment { XUIAlphaTextView mXUIAlphaTextView; ExpandableLayout expandableLayout1; ExpandableLayout expandableLayout2; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_blank2, container, false); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mXUIAlphaTextView=getActivity().findViewById(R.id.expand_button2); expandableLayout2=getActivity().findViewById(R.id.expandable_layout_2); expandableLayout1=getActivity().findViewById(R.id.expandable_layout_1); mXUIAlphaTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (expandableLayout1.isExpanded()) { expandableLayout1.collapse(); } else if (expandableLayout2.isExpanded()) { expandableLayout2.collapse(); } else { expandableLayout1.expand(); expandableLayout2.expand(); } } }); } }

运行 在这里插入图片描述

4.顶部弹出框

调用会从顶部弹出一个弹窗 java代码

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); CookieBar.builder(this) .setTitle("来自护眼精灵的温馨提示") .setMessage("来自Rose-J的提示") .setDuration(4000) .setBackgroundColor(R.color.xui_btn_green_normal_color) .setActionColor(android.R.color.white) .setTitleColor(android.R.color.white) .setAction(R.string.app_name,View::stopNestedScroll) .show(); } }

运行 在这里插入图片描述 关于XUI就讲到这里啦,还有很多好看的控件,这里就不一一介绍了,感兴趣的小伙伴可以深入了解,也欢迎和博主分享你的新发现哦,感谢您的阅读。 博主为了可以学到更多的Android知识,创建了一个安卓知识交流群,欢迎大佬入群,当然也欢迎和我一样的安卓小白,我们可以一起交流,最重要的是快乐水群,记得定个小目标,冲击bat

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有