![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android基础相关
Rnwater
465215335
展开
-
Android 类似淘宝的吸顶特效 NestedScrollView+RecycleView
这个问题其实对于有限的资源加载来说是很好的解决方案,但是如果涉及到的是图文结合的并且有大批量的数据的时候就需要用到RecycleView的复用机制,这样就要求RecycleView固定高度。事实的情况并不是这样。当我们测试的时候,当我们慢慢滑动NestedScrollView,当屏幕出现RecycleView的时候,这时候NestedScroolView的滑动惯性还在继续,我们此时触摸滑动RecycleView 是可以滑动的。这个可以是固定值,看自己的设计是多大的,我的设定是48dp,所以转化后的结果是。原创 2023-10-27 11:14:39 · 445 阅读 · 0 评论 -
Android基于ViewFlipper 实现代办事项的上下循环滚动
一个页面实现两个代办事项的上下轮播原创 2023-04-11 11:25:28 · 442 阅读 · 0 评论 -
Framelayout移除不需要的fragment
Framelayout移除fragment原创 2022-07-05 13:35:03 · 537 阅读 · 0 评论 -
扔掉drawable shape 实现更高效的shape
自定义属性实现自由更改填充色 自由改变边框 自由改变圆角 渐变 等 通过设置shape_openSelector 可以实现选中之后的效果 比如灰色转可用状态先上自定义属性<declare-styleable name="ShapeTextView"> <!--是否使用Selector选择器--> <attr name="shape_openSelector" format="boolean" /> <!--.原创 2021-03-08 10:33:14 · 198 阅读 · 0 评论 -
CMake添加库文件
#添加头文件的路径(相对于本文件路径)include_directories(include)add_library(avformat SHARED IMPORTED)STATIC 静态库SHARED 动态库MODULE 在使用dyld的系统有效,若不支持,等同于SHAREDset_target_properties(avformat //预编译库名PROPERTIES IMPORTED_LOCATION //指明要设置的参数${FF}/libavformat.so//导入库的路.原创 2020-09-17 14:18:43 · 334 阅读 · 0 评论 -
CMake方法定义
function(func a b c) message("a=${a}") message("b=${b}") message("c=${b}") message("ARGC=${ARGC}") message("ARGV=${ARGV}")endfunction()func(1 2 3)//调用a=1b=2c=2ARGC=3//参数个数ARGV=1;2;3//所有参数宏定义macro(ma x y) message("x=${x.原创 2020-09-17 14:13:05 · 132 阅读 · 0 评论 -
CMake 流程控制
true 的常量值1,ON ,YES,TRUE ,Y 非0的值false的常量值0,OFF,NO,FALSE,N,IGNORE,NOTFOUND,空字符串,以-NOTFOUND结尾的字符串example:set(if_tap OFF)set(elseif_tap ON)if(${if_tap})message("if")elseif(${elseif_tap})message("elseif")else(${if_tap})message("else")...原创 2020-09-17 11:43:47 · 137 阅读 · 0 评论 -
CMake使用-1:变量
#声明变量 set(变量名 变量值)set(var 234)打印message("var 的值为${var}")${变量名} 引用的意思数组变量的写法set(list_var 1 2 3 4 5)或者set(list_var "1;2;3;4;5")原创 2020-09-17 11:26:33 · 74 阅读 · 0 评论 -
ANR的定位和分析
在实际开发中,我们有可能会遇到ANR异常,所谓ANR 即 Application Not Response.应用程序无响应。ANR异常一般在我们操作按钮或者卡顿超过一定时间(5秒)的时候就会出现。ANR的主要出现的原因是我们在主线程做了一些耗时操作。典型的ANR场景:在主线程进行网络请求处理在主线程操作数据库在主线程操作文件ANR的定位和分析/data/anr/t...原创 2019-08-12 16:14:54 · 259 阅读 · 0 评论 -
Android UI管理系统的层级关系和UI绘制流程
主要说下视图的绘制,不关注启动流程。一个应用启动,首先会启动一个主Activity,然后开始加载视图进行绘制。而绘制会从跟视图ViewRootImpl.java的performTraversals()方法开始,从上到下遍历整个视图树,每个view控件负责绘制自己,而viewGroup还需要负责通知自己的子View进行绘制操作。视图绘制的过程可以分为三个步骤:测量(Measure)...原创 2019-08-12 14:54:47 · 495 阅读 · 0 评论 -
如何在用cmd命令安装apk文件到手机?
大家都熟悉怎么去应用商城去下载一个apk文件安装到手机,在我们下载完成的时候直接提示你安装到手机里。相信有的人也不懂里面的原理是怎样实现的。今天就来跟大家说下。首先学过android开发的同学都知道,我们做好的一个android应用程序,如果是用eclipse开发的,就直接点击红色圆形按钮,链接我们的手机直接运行就可以将开发好的应用程序安装到我们的手机上了,这里面其实是android调试桥在工...原创 2015-04-09 09:16:57 · 16181 阅读 · 0 评论 -
ProGuard的作用--使用以及如何进行bug分析
ProGuard作用ProGuard通过删除无用代码,将代码中类名、方法名、属性名用晦涩难懂的名称重命名从而达到代码混淆、压缩和优化的功能,跟JavaScript的混淆压缩类似。压缩和优化使得编译后apk包更小。混淆可以保证代码在被反编译后读懂的难度很大,防止逆向工程。这点也是我们在应用发布前需要ProGuard的一大原因。ProGuard的使用buildTypes { ...原创 2019-05-21 23:44:18 · 315 阅读 · 0 评论 -
Java中创建对象的几种方式
1、使用new关键字:这是我们最常见的也是最简单的创建对象的方式,通过这种方式我们还可以调用任意的够赞函数(无参的和有参的)。比如:Animal animal = new Animal();2、使用Class类的newInstance方法:我们也可以使用Class类的newInstance方法创建对象,这个newInstance方法调用无参的构造器创建对象,如:Animalanima...翻译 2019-05-19 13:02:46 · 487 阅读 · 0 评论 -
对象和方法注解
接上篇的资源注解我们来看下接下来的注解@ActionBar.NavigationModepublic abstract int getNavigationMode();这种对应的就是返回指定对象的注解方式。接下来在看一种@WorkerThreadprotected abstract Result doInBackground(Params... params);/*...翻译 2019-04-30 22:06:25 · 295 阅读 · 0 评论 -
资源注解
作为Android开发程序员我们都知道Android中的资源都是以整型值表示的,并保存在R.java的文件中。若我们在资源传值的时候要求传layout资源型的函数,如果传入String资源值不会再编译期间报错,只会在运行时执行到相关的代码的时候才会出现问题,如果我们使用资源型注解就可以防止这种情况的出现了。在我们的support-annotation-xxx中,每种资源类型对应一个注解。...翻译 2019-04-30 19:25:23 · 282 阅读 · 1 评论