- 博客(226)
- 资源 (2)
- 收藏
- 关注
原创 Gson将JsonString 中的 int long 等数字转化为带小数的 Double
比如1转为object变成了1.0 或者long类型输出 1exxxx(科学计数法)只需要将Gson创建的时候改成这样。
2023-10-07 16:43:42 737
原创 BigDecimal的使用
1.为啥要使用BigDecimal 就是因为数据太大涉及精度问题比如3000000000,有一点吐槽的就是你设置为BigDecimal接收的数据不能是null 不然会报错。2.BigDecimal基本了解BigDecimal(int) 创建一个具有参数所指定整数值的对象。BigDecimal(double) 创建一个具有参数所指定双精度值的对象。 //不推荐使用 精度不准确BigDecimal(long) 创建一个具有参数所指定长整数值的对象。BigDecimal
2023-07-27 16:35:31 392
原创 Android实现抓包 使用Fiddler抓包
提取码:bf6u电脑打开fiddler,手机电脑同一网段。fiddler打开https抓包(),同时配置好端口((监听端口默认8888)对于普通的http请求的app,不需要进行上面的配置,。(监听端口默认8888)win+R,输入cmd回车。召唤出cmd,然后输入ipconfig,ipv4的地址就是电脑的ip地址打开手机,连接和电脑同一网络的WiFi,找到,代理选择手动,然后主机名输入上一步拿到的电脑的ipv4地址,端口输入fiddler配置的监听端口。
2023-07-16 12:09:44 1810
原创 CoordinatorLayout嵌套AppBarLayout滑动抖动和闪跳
CoordinatorLayout嵌套AppBarLayout滑动抖动和闪跳。
2022-12-11 23:02:42 634
原创 Android 绘制气泡
效果图思想1.绘制气泡随机xy轴,r半径,速度,随机xy方向(方向就是x和y加减同一个随机偏移量),随机透明度2.气泡移动和复用气泡在原来的xy+=或者-=偏移量,每一次便宜判断xy是否超过屏幕宽度和高度,超过就重新随机生成3.代码实现制气泡效果public class QiPao extends View { public Paint paint; public DisplayMetrics displayMetrics; public Q.
2022-05-18 17:46:04 700
原创 Android 绘制雪花
1.效果2.思想2.1.雪花生成 初始化从y=0,生成随机r半径 r=(5到10随机) ,x轴随机 x=屏幕宽度*随机比例,y轴随机下滑距离speet=(0.1到2随机 )2.2.雪花下滑每次y轴+=speet滑动距离2.3雪花复用每次下滑的时候判断当前y轴+speet滑动距离+R直径如果大于屏幕的高度 ,那么y=0 然后重新生成速度 半径 x轴3.代码实现//绘制雪花效果public class XueHua extends View { public.
2022-05-18 17:22:50 461
原创 Android 教你如何画椭圆实现二维曲线
1.先说思想 来看图上图逆时针 从a点到b到c点循环绘制 X轴就会出现左右来回滑动正负交替,1到0到-1回来-1到0到1的状态,Y轴也是一样正负交替,这里了解了 我们就来了解三角函数sin和cossin函数图cos函数图可以看出这两个从0到π sin是冲低到高在降低 ,而cos是从高到低咱们在看最上面第一个图的e点顺时针走到Y轴,图一x的走向从0到1到0 小到大到小符合sin。而y的走向1到0到-1,一直变小符合cos到这里基本可以懂这些关系了 可..
2022-05-18 16:52:28 1086
原创 Android更换主题
类似效果简单写法 主题属性custom_theme_attrs.xml<?xml version="1.0" encoding="utf-8"?><resources> <!-- 自定义属性 --> <attr name="text_color" format="color" /> <!-- 日间主题 --> <style name="DayTheme" parent="Theme.App
2022-04-29 17:40:56 2733
原创 RecyclerView倒计时优化
效果图1.在RecyclerView中实现高质量倒计时需要解决哪些问题。当列表中有多个倒计时如何处理,开启多个还是统一管理?如果每个item都开启倒计时是否造成了资源浪费?不在展示区的倒计时又该如何取消?不在屏幕上的倒计时如何保证时间的准确性?只使用一个倒计时如何通知所有需要更新的item?如何保证不在屏幕上而不被通知的item的时间的准确性?能否在退出后台或者跳转到其他页面的时候暂停减少资源的浪费?2.带着这些问题着手设计我们的倒计时方案。 首先从大的逻辑上我们优选单任务倒计时方案。
2022-04-29 17:25:35 738
原创 实现头部+ViewPager+RcyclerView
1.实现效果2.布局文件<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/coordinatorLayout" android:layout_width=.
2022-04-24 16:55:10 273
原创 OkHttp配置HTTPS访问+服务器部署
1 概述OkHttp配置HTTPS访问,核心为以下三个部分:sslSocketFactory HostnameVerifier X509TrustManager第一个是套接字工厂,第二个用来验证主机名,第三个是证书信任器管理类。通过OkHttp实现HTTPS访问需要自己实现以上三部分,另外还简单提及了服务器端的部署,用的是Tomcat9,最后是一些常见问题的可能解决方案。2 OkHttp介绍OkHttp是一款开源的处理网络请求的轻量级框架,有Square公司贡献,用于替代HttpUrl
2022-04-02 14:10:10 1816
原创 Dagger2的简单使用
Dagger2可以更好的帮助我们解耦 不用担心对象或者属性在被生命周期持有导致的未释放为什么要用Dagger2 举个例子一般正常调用一个对象的方法是这样public class A { public void eat() { System.out.print("吃饭了"); }}A a = new A();a.eat();改为在A类传入对象B是这样public class A { private B b; public A...
2022-04-02 13:50:35 260
原创 Python的安装
需要安装python和pycharm编译器第一步 python下载:https://www.python.org/getit/随便选择一个下载https://www.python.org/getit/下载64位的通过cmd输入python查看是否安装成功如果提示'python' 不是内部或外部命令,也不是可运行的程序 或批处理文件。那么你就卸载 重新安装选择一个没有中文简介的目录这时候python安装好了 可以安装Pycharm编译...
2022-04-01 12:21:05 1692
原创 商城Sku实例
看到这个图大家可以延伸一个想法 ,第一步需要将View画出来,第二步就是将后台的数据进行解析然后开始循环从数据中来判断按钮是否可点,当然这时候我们还不清楚处逻辑是怎么进行判断的当然这一步逻辑我会放在第二步里面讲清楚 现在先开始第一步将view绘制出来一. 绘制布局1.看到这个布局无非上面一个颜色TextView 下面是一个可以自动换行的ViewGrop我就不多讲了 直接上代码,无非就是在循环addView的时候计算子VIew的宽度和高度是否满足父View剩余的空间,如果满足直接...
2021-08-24 16:47:24 460
原创 Android打造通用的TitleBar
日常android项目开发中,各种Activity的界面通常都会有一套TitleBar样式,但是各个界面又可能具有差异性。很显然,我们不可能每一个界面都去写一套TitleBar.因此封装一个通用的TitleBar是很有必要的。1.通用的自定义TitleBar的布局文件title_bar_layout.xml...
2021-06-02 14:46:59 689
原创 Android常用的工具类汇总(方便日后使用)
平时进行android开发时候,可能需要使用各种各样的工具类,每次总要去上网搜索,费时费力,因此特此将其整理发出来,小伙伴可自行收藏.1.LogUtils工具类...
2021-06-02 14:24:54 1524
原创 Android 屏幕适配方案
和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计: 我的App需要应用这些设计架构吗? MVC,MVP等架构讲的是什么?区别是什么? 本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该注意的问题。1.架构设计的目的通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且更容易进行后续的测试以及定
2021-06-02 11:27:49 479 1
原创 Android中MVC/MVP模式区别
MVC模式M 指模型层(网络IO、文件IO等操作)V 指视图层(对应Android中的Layout和Activity/Fragment)C 指控制层(对应Android中的Activity/Fragment)在Android中,Activity/Fragment既充当控制层又充当视图层,这就导致了V和C这两层耦合在一起,当业务比较复杂时,Activity/Fragment文件就很庞大,导致难以维护和测试,这时就可以MVP模式。作者:Charein链接:https://www.jiansh
2021-06-02 11:17:50 296
原创 Android最好用的项目框架搭建
本篇先记录下当前项目中涉及的主要技术要点。也算是对所作项目的一次总结。如果这个过程能对你有些许的帮助,那可能就显得有意义点了。一个完整的Android项目会涉及后台和前端。我们只关注于前端,也就是我们的app本身。下面列出项目架构需要具备的技术点。(以当前所作项目为例)1.项目结构(MVP设计模式)2.屏幕适配3.程序启动页4.运行权限获取5.基类(BaseActivity/BaseFragment/BaseApplication)6.Retrofit(最流行的网络请求框架)+RxJav
2021-06-02 11:05:53 1706
原创 Android阿里云实现竖屏全屏播放视频
安卓的固定竖屏播放并不受手机是否开启旋转的限制,需要用户设置Activity为固定竖屏。目前带皮肤的播放器内部对竖屏播放视频做了一定的支持.用户使用相对比较简单.参考Demo代码FixedSkinActivity1.在onCreate里面设置当前Activity为固定竖屏模式.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);2.在固定竖屏模式需要全屏时需要实现setLockPortraitModemAliyu
2021-04-04 23:55:57 1591
原创 Android 直播实现EditText指定布局被软键盘顶上去
效果图其实很简单 不要想的太复杂了<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="ve.
2021-04-01 21:38:39 589 3
原创 Toast重复创建多次点击不显示
public class MyToast { private static String oldMsg; private static long oneTime = 0; private static long twoTime = 0; private static Toast toast = null; private static Context context; public static void init(Context con){ .
2021-03-31 13:32:02 571
原创 分享两个超实用的Android开源UI框架——QMUI和XUI
目录QMUI_Android功能特性全局 UI 配置丰富的 UI 控件高效的工具方法功能列表支持 Android 版本使用方法QMUI Demo APP 安装包下载XUI特征演示程序截图QMUI_Android是腾讯的一款开源UI库QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目.
2021-03-27 19:46:22 2713
原创 AndroidStudio离线gradle
1.Android Studio 选中offine work 地址就选中到.gradle就行2.https://services.gradle.org/distributions/到这个网站下载对应的gradle 必须和gradle-wrapper.properties 里面的distributionUrl版本一样3.按照下面的路径找进去就能看见as生成对应的文件4.将下载好的gradle 压缩包放入这个35kgqhc的这个文件夹里面 (gradle不要解压 直接放进...
2021-03-19 23:06:40 713
原创 TextView包含url设置点击事件
public class TextViewURLOnclick { private Context mContext; public TextViewURLOnclick(Context context) { mContext = context; } public void setLinkClickIntercept(TextView tv) { tv.setMovementMethod(LinkMovementMethod.getIns..
2021-01-28 11:54:02 292
转载 DataBInding封装Adapter
我们先来总结一下目前Android开发中通过RecyclerView列表的几种常见实现方式。1.直接使用原生RecyclerView提供的API,自己实现RecyclerView的Adapter和ViewHolder。 2.使用网上比较火的三方库,类似一行代码实现上拉加载更多,下拉刷新,xxx,xxx的RecyclerViewAdapter;或者个人开发者基于此类,再度封装的BaseAdapter。 3.使用Databinding,写一个一劳永逸的Adapter,从此告别Adapter的多次实现。
2021-01-08 17:39:14 1893
原创 DataBinding,Paging,ViewModle结合封装Adapter
本来不想写这篇文章的,但是本人在学习的时候遇到一个问题,那就是paging框架只要有一次请求失败,那么他就不会再出发自动请求加载下一页的回调,事先在网上找了一圈,简书,csdn里面查了半天,也给博主们私信了,但是没有任何结果,这方面的东西太少了,所以想分享一下。顺便简单测试下删除添加等。简略的讲一下这三个的须知DataBinding 是用来省去findViewByIdPaging是实现无限滚动 提前预加载ViewModle是用来数据改变通知页面变化DataBindingjet...
2021-01-08 17:10:22 633 1
原创 LiveData 与 ViewModel结合实现数据改变通知页面更新和数据持久化
导入包 implementation 'android.arch.lifecycle:extensions:1.1.1'可以看到27.0.0的v7库有依赖Lifecycles。当时Lifecycles有集成进SupportActivity。其实一开始我没有太当回事。。。直到27.1.0以后:好吧,今天的主角出现了,LiveData与ViewModel。看到这里我觉得是该了解一波了。顺便看一下截止目前最新的v7:发现好多常用的组件分离出了v4包,比如ViewPag
2021-01-08 12:20:34 2337
原创 LiveData数据改变时通知相应的界面代码进行更新
为什么要引进 LiveDataLiveData 是一个可以被观察的数据持有类,它可以感知 Activity、Fragment或Service 等组件的生命周期。简单来说,他主要有一下优点。它可以做到在组件处于激活状态的时候才会回调相应的方法,从而刷新相应的 UI。 不用担心发生内存泄漏 当 config 导致 activity 重新创建的时候,不需要手动取处理数据的储存和恢复。它已经帮我们封装好了。 当 Actiivty 不是处于激活状态的时候,如果你想 livedata setValue 之
2021-01-08 12:07:53 4330
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人