- 博客(94)
- 资源 (7)
- 收藏
- 关注
原创 【Android-基础】的目录(仅作用于页面跳转)
本文仅作为【Android-基础】的目录,方便您迅速找到需要的文章。(持续更新)一、数据存取4种方式:sp、文件存取、sqlite、contentProvide二、动画代码,做一些简单的动画
2020-09-02 23:09:20 195
原创 flutter布局详解及代码示例(补充)
Container、Padding、Center、Align、FittedBox、AspectRatio、ConstrainedBox、Baseline、FractionallySizedBox、IntrinsicHeight、IntrinsicWidth、LimitedBox、Offstage、OverflowBox、SizedBox、SizedOverflowBox、Transform、CustomSingleChildLayout
2023-12-01 09:48:42 794
原创 flutter布局详解及代码示例(下)
GridView(二维滚动列表)、ListBody(滚动列表)、 Table(表格布局)、 Flow(流式布局)、Wrap(流式布局)、 ScrollView(滚动视图)
2023-11-27 15:58:11 505
原创 flutter布局详解及代码示例(上)
Row(水平布局)、Column(垂直布局)、Stack(可重叠布局)、IndexedStack(单一显示可重叠布局)、ListView(滚动列表)
2023-11-27 15:56:25 512
原创 【dart线程之怎么处理异步和顺序异步任务队列】
阻塞式调用和非阻塞式调用、dart怎么处理异步任务?顺序异步怎么实现?Future的then链式调用、连续的await、await、async的作用
2023-11-24 09:09:45 201
原创 使用堆视图创建3个按钮三角摆放
首先外部一个大的“垂直堆”,垂直堆第一项放一个Button,第二项放一个“水平堆”通过选中左侧的Stack View,让其显示范围,此时再去拖拽,避免拖拽错控件。从效果图看,想要让3个Button呈三角摆放,需要两个堆视图完成。按照上面分析,拖拽两个堆以及3个Button到storyboard。水平堆里再放两个Button即可完成。注意,这个层次一定不能出错。
2023-05-08 15:13:04 486
原创 RxJava简单使用及代码
概述RxJava 是一个 基于事件流、实现异步操作的库类似于 Android中的Handler作用“四剑客”被观察者(Observable) 产生事件观察者(Observer) 接收事件并响应订阅(Subscribe) 关联 被观察者 和 观察者事件(Event) 被观察者 和 观察者 交互的载体模型“被观察者”通过“订阅”按顺序发送“事件”给“观察者”,“观察者”按顺序接收“事件”作出响应。用法(代码)一、依赖imp
2022-02-25 15:14:03 2460
原创 OkHttp多个特性以及代码示例
文章包含:OkHttp同步或者异步、OkHttp获取响应的头部信息、OkHttp提交一个markdown文档到web服务,以HTML方式渲染markdown、OkHttp以流的方式POST提交请求体、OkHttp提交文件照片、OkHttp使用Gson队JSON和Java对象转化、OkHttp配置缓存、OkHttp配置超时(OkHttp支持连接,读取和写入超时)、OkHttp取消请求、OkHttp单独配置单个请求、OkHttp触发401后、OkHttp拦截器、OkHttp证书
2022-02-24 17:36:38 3311 1
原创 代码:查看某个service是否在运行
参数className需要service的完整路径。代码:public static boolean isServiceRunning(Context context, String className) { boolean isRunning = false; ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); // 这里的30代表返
2021-09-14 15:42:08 186
原创 变量在debug/release版本的不同体现,通过gradle文件
项目的build.gradle:android { ... buildTypes { debug { buildConfigField("boolean", "IS_TIME", "true") } release { buildConfigField("boolean", "IS_TIME", "false") } }}java文件中使用的时候:boolean isTime = BuildConfig.IS_TIME;注意:如果切换debug/release
2021-09-13 17:01:38 233
原创 LayoutInflater解析
LayoutInflater技术广泛应用于需要动态添加View。使用代码:@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mainLayout = (LinearLayout) findViewById(R.id.main_layout); LayoutInflater
2021-09-09 18:04:45 185
原创 setContentView将xml和java结合在一起流程
三个核心类:Activity:调用setContentViewWindow:产生视图的抽象类【实际生效类:PhoneWindow】View:视图的抽象类【实际生效类:DecorView】流程:Activity调用setContentView,实际调用到PhoneWindow的对应方法;PhoneWindow做了三件事:1、生成一个DecorView;2、生成一个ViewGroup包装DecorView;3、通过LayoutInflater.inflate把layout_id的xml和Vie
2021-09-07 17:46:56 156
原创 volley详解以及用法
1、如何发送请求;<1>.volley的三大组件:应用创建Request并add到RequestQueue,RequestQueue处理并响应给Volley,Volley处理告知应用。–RequestQueue【管道 】:管理网络操作、缓存响应、解析响应的处理线程;–Request【请求】:解析原始响应;–Volley【调度】:将已解析的响应调度回主线程。附一个流程图解:<2>.Volley的核心作用:Volley将已解析的响应调度回主线程,这样才能随意修改界面控件
2021-09-03 15:35:39 689
原创 代码:动画抖动效果
利用Animation的子类TranslateAnimationAnimation animation = new TranslateAnimation(0, 0, 0, 3); // 四个参数依次代表X轴从0抖动到0,Y轴从0抖动到3animation.setInterpolator(new CycleInterpolator(3)); // 抖动3次animation.setRepeatCount(0); // 重复上面0次animation.setDuration(300); // 动画持续时
2021-09-02 16:29:34 180
原创 代码:利用Spring实现动画回弹效果
基于官方提供的SpringAnimation:引入依赖: compile 'com.android.support:support-dynamic-animation:25.3.1'核心代码:private void onScaleAnimationBySpringWayThree(View view){ SpringAnimation animationX = new SpringAnimation(view, SpringAnimation.SCALE_X,1.8f); // 1.8f是弹到的
2021-09-01 15:26:48 343
原创 代码:生成自定义时间
利用GregorianCalendar 生成时间,利用Calendar 修改时间,最终拿到Date 。GregorianCalendar gc = new GregorianCalendar();gc.set(Calendar.YEAR, 2021);//设置年gc.set(Calendar.MONTH, 2);//这里0是1月..以此向后推gc.set(Calendar.DAY_OF_MONTH, 3);//设置天gc.set(Calendar.HOUR_OF_DAY, 4);//设置小时gc
2021-08-31 17:00:38 385
原创 代码:wait-notify实现多线程协调
多线程都要读写的变量假设为:serverTimeA线程要做的:网络请求服务器时间,并在请求成功后赋值给serverTimeB线程要做的:直到网络返回时间,然后使用该时间,不然一直等待A线程:在网络请求返回的onSeccess方法中:synchronized (lock) { serverTime = response.getCurrentTime(); // 获得网络请求的时间 // 通知其他线程我这里ok了 lock.notifyAll();}B线程:new Thread(new
2021-08-30 16:59:39 93
原创 代码:修改系统时间
需要系统UIDAndroidManifest中:系统UID:android:sharedUserId="android.uid.system"修改系统时间的权限:<uses-permission android:name="android.permission.SET_TIME" />类中:private void setSysTime(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add
2021-08-27 09:57:38 499
原创 代码:通过url拿到该https的证书
简单来说就是用了Certificate和HttpsURLConnection这俩类实现的。后者获得连接,前者通过连接拿到证书。private Date startDate; // Validity Period Start Timeprivate Date stopDate; // Validity Period Stop Timeprivate SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");// use
2021-08-26 17:25:35 557
原创 蓝牙连接之无需配对的低速传输数据方式
基于UUID去建立一条低速的无需配对的蓝牙通道一、原理蓝牙是一种使用无线电通信的技术完成设备与设备间通讯与数据交换。UUID是什么:不同的服务用不同的UUID区分。服务是什么:能提供的功能。UUID的详细解释:俩中国人用汉语交流,汉语就是俩中国人的UUID,交流就是服务。蓝牙技术联盟SIG定义UUID共用了一个基本的UUID:0x0000xxxx-0000-1000-8000-00805F9B34FB。总共128位,为了进一步简化基本UUID,每一个蓝牙技术联盟定义的属性有一个唯一的16位UUID
2021-05-25 22:36:14 2618 2
原创 ASCII三种进制对照表、二进制、字节
一、ASCII三种进制对照表换行、空格等对照表二、JAVA代码中,各种进制的表现形式:十进制表示:104二进制表示:0b01101000十六进制表示:0x68总结:二进制前加0b,十六进制前加0x三、JAVA中类型长度:byte:1个字节8位;short:2个字节16位;int:4个字节32位;long:8个字节64位;浮点型:float:4个字节32位;double:8个字节64位;注:默认的是double类型,如3.14是double类型的,加F(3.14F)就是dou
2021-05-24 22:15:52 31235
原创 usb相关资料整理(七)
接上一篇。54、自给电源式的USB设备可能在连接上USB接口之前,就已经通电,但是它们直到连接USB接口才能被看作是加电状态。55、缺省状态:设备加电之后,在它从总线接收到复位信号之前不应该对总线传输发生响应。在接收到复位信号之后,设备才在缺省地址处变得可被寻址。56、地址状态:当USB设备处于挂起状态时,它保持这个地址不变。57、配置状态:在USB设备正常工作之前,USB设备必须被正确的配置。58、中止状态:USB设备在探测不到总线传输时,自动进入中止状态。当中止时,USB设备保持本身的内部状态
2021-05-23 19:15:08 179
原创 usb相关资料整理(六)
接上一篇。46、事务格式:包事务格式根据端口类型而变化。有4种端口类型:批处理、控制、中断、同步。①批处理:以错误检测和重试的方式保证主机和功能部件之间的数据的无错发送能力。主机空闲–>标记IN代表数据输入到主机–>功能部件发来数据包 or NAK表示暂时不发数据 or STALL代表永久不发数据–>如果主机收到数据包,则返回ACK握手;如果数据包有问题,那么什么都不返回。主机空闲–>标记OUT代表数据从主机出去–>功能部件收到–>部件返回ACK,主机发送下一包
2021-05-22 19:57:30 148
原创 usb相关资料整理(五)
接上一篇。38、数据被传送到总线时,最低有效位(Lsb)逐渐发送到最高有效位(Msb)39、所有的包都从同步(SYNC)字段开始的,随后跟着包标识符(PID)。包标识符由4位的包类型字段和其后的4位的校验字段构成。包标识符指出了包的类型,并由此隐含地指出了包的格式和包上所用的错误检测的类型。【包标识符的校验字段通过对包类型字段的二进制求反码产生,如果4位的PID检验位不是它们各自的包标识符位的补,则PID错】任何收到包标识符,如果含有失败的校验字段,或者经过译码得到未定义的值,则该包标识符假定是被损
2021-05-21 23:46:07 222 3
原创 usb相关资料整理(四)
接上一篇。23、总线访问的一些核心概念【用于了解不同部分如何相互协调工作来支持USB上的数据传送】:①传送管理:用于支持USB上信息流的各实体和各对象②事物跟踪:一种USB机制,跟踪在USB系统中的事务③总线时间:总线传一个信息包的时间④设备/软件缓冲区大小:支持一个事务所需要的控件⑤总线带宽归还:被分配给其它传送的总线带宽未被使用时,可以重新给控制传送和批传送使用24、主机上的不同部分如何相互协调工作来支持USB上的数据传送:左侧从上到下大框的含义是:客户软件、USB驱动器、主机控制器驱
2021-05-20 22:22:35 488
原创 usb相关资料整理(三)
接上一篇。7、数据流模型上图中黑色的是真实的物理通信(端到端),淡灰色的是逻辑通信,而开发者只需要关注逻辑通信即可完成开发工作。主机host:USB主机在USB系统中是一个起协调作用的实体,它不仅占有特殊的物理位置,而且对于USB以及连接到USB上的设备而言,还具有特殊责任——主机控制所有的对USB的访问。一个USB设备想要访问总线,必须由主机给予它使用权。主机还负责监督USB的拓扑结构(为了协调)。设备Physical Device:USB设备用于向主机提供一些额外的功能。USB设备提供的功能是
2021-05-19 22:13:12 196 6
原创 usb相关资料整理(二)
接上一篇。6、USB常用术语这些常用术语有助于学习USB相关的知识,后面的汉语算是这个术语的一般化解释,可以参考,有助该术语出现时的理解。查看一遍术语也有利于了解USB相关知识会出现哪些专业术语,像什么常见的SOF、SOP、IRP等。读者可在遇到不知义的简写时,不妨来搜索一下该术语。并且后续这些术语一般都会出现在“usb相关资料整理”系列文章中。ACK :Handshake packet indicating a positive acknowledgment【确认信号】Active Device
2021-05-18 23:47:32 470 2
heroes1.zip
2020-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人