Android
文章平均质量分 73
Max2005
网络通信开发。互联网新兵。
展开
-
Compose相对React的改进
compose 相对 react 的改进原创 2022-03-04 19:09:46 · 2012 阅读 · 1 评论 -
Android布局动画梳理之LayoutTransition源码追踪
Android系统的布局动画可以按如下脉络进行梳理1、按时间点分类 版本4.0之前可能没有,4.0或以上有LayoutTransition,4.4.2或以上有scenes+transition2、按动作划分 child自身的动画 child移动的动画3、按涉及的部件划分 ViewGroup或其子类 La原创 2015-04-03 06:54:45 · 1826 阅读 · 0 评论 -
Android源码Transition.java中发现一个小bug
最近两天正在看Scene+Transition部分,感觉这部分挺有空间可挖。该部分的功能是,在同一组ViewGroup结构的两个不同状态之间做动画切换,这有助于用户知道某一个状态的由来。更进一步,在这组ViewGroup结构中,可以选择部分view做动画切换,部分则不。这是个有趣的功能,所以写了小段代码测试。选择view可以多个方法,比如直接指定view,通过view的id,名字,或种原创 2015-04-06 13:43:11 · 964 阅读 · 0 评论 -
在Fragment、Activity及Application生命周期中保持数据的文摘整理及部分结论
在Fragment、Activity及Application生命周期中保持数据的文摘整理及部分结论问题梳理 待保持的数据 View状态 属于fragments的数据 属于Activity的数据 属于app的数据,比如某个class里面的static数据 在如下原创 2015-06-23 01:49:12 · 1699 阅读 · 0 评论 -
Android开发环境及调试问题汇集
在这里记录自己碰到的调试相关问题。有时候可能是非常小的问题,但会折腾人好几天,非常不值。1、Android Debug Bridge (adb)与wandoujia的端口冲突在模拟器运行一个Android项目,提示如下:The connection to adb is down, and a severe error has occured.You must restart原创 2013-12-06 02:48:04 · 2199 阅读 · 0 评论 -
整理了一个 android 上的波形图及柱状图绘制控件
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-01-13 00:50:55 · 7468 阅读 · 0 评论 -
View中OnClickListener对onTouch的影响
测试代码 mTextView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction原创 2015-12-23 19:59:38 · 1106 阅读 · 0 评论 -
Android触屏事件处理流程的最简整理及应用示例
Android系统view层次结构如下。注意Fragment和ViewGroup可能交错Activity Fragment ViewGroup View整理 当Activity收到event后,通过dispatch方法逐层下发 最下层通过onTouchEvent方法逐层向上反馈是否消费原创 2016-05-01 01:35:30 · 2270 阅读 · 0 评论 -
在多个Android项目工程中共享一个库模块
我们可以把库模块做成一个jar,由多个项目工程引用。不过有时我们会希望以源文件源项目的方式来引用库模块,这样可以对库模块文件临时做修改调试等等。我们首先建立两个最简项目工程,其一叫MyProj1,其二叫MyProj2Lib,假定现在我们已经建好了,每个工程里面各有一个app模块。接下来我们在MyProj2Lib中增加了一个mylibrary库模块,方法是File-->New--原创 2020-05-06 01:17:31 · 3336 阅读 · 0 评论 -
Material Design风格中CoordinatorLayout、Behavior和nestedScroll的整理分析
现象与分解 Material Design中一个神奇的设计是,抹动一个子view甲时,子view乙与子view甲一起滑动 可以想象一下,其实现过程必然是 子view甲向父ViewGroup申请滑动 父ViewGroup将部分滑动距离交给子view甲,部分交给子view乙 子view甲和乙同时滑原创 2016-07-15 02:12:22 · 1368 阅读 · 0 评论 -
对字符编码的学习理解
我以前从事计算机底层工作,比较少涉及到各种中文英文字符集及其转换。最近学习Java+Mysql时碰到了这个字符设置问题,思考一阵后我从比较熟悉的底层的角度来理解这个问题。字符指人类或智能模块能理解的语句或数据的组成元素,例如字符串“Hello world”里面的各个字符。计算机底层以及网络传输层并不懂字符,只懂得01010101这样的二进制编码,故字符必须转换为二进制编码后才能通过计算机底原创 2012-01-24 02:35:04 · 785 阅读 · 0 评论 -
写一个Android日历控件
日历是一个常用控件,一般而言我们会通过两种途径来得到,其一是Android原生控件CalendarView,其二是在网上找一些第三方的日历控件。但这两种都有同样的不足,也即不好自定义,比如添给某段日期加个标记,或加一个中国农历,等等。最佳的,是自己写一个,可以完全自定义,无论以后项目怎么扩展,自己心里都有底。分析一下,日期本身是”年月日“,但我们要写日历,最重要的是“周”,只要我们能够原创 2016-05-01 00:38:45 · 2381 阅读 · 0 评论 -
从可视角度理解px、pt、dp
三个长度单位都根源于人眼的最小可视角度,根据这个角度和目标距离确定最小可视颗粒度尺寸。人眼的最小可视角度是不变的,目标距离越远,则这个颗粒度尺寸就越大,否则人眼会分辨不了。比这个颗粒度尺寸小一个数量级的度量单位没必要定义,因为人眼看不见,用不到原创 2017-01-05 22:10:50 · 1168 阅读 · 0 评论 -
用RxJava和RxBinding发射用户点击
在初步应用RxJava时发现,网上资料中Observable的创建例子主要使用create/just/from,都是将现在已有的数据序列整理为一个发射器,而我们最常见的应用却是现在没有数据序列,等待将来数据序列的到达,比如等待用户点击或输入,或等待网络来包,也即,我们其实需要一种手动的发射器,在数据到达后用来发送这些数据。那么怎样创建这种发射器呢?查询资料后发现有几个途径,下面用点击textvie原创 2017-08-05 23:15:13 · 764 阅读 · 0 评论 -
最简单易懂的dagger2示例
在网上搜了很多资料,包括官网,都看不懂,基本打算放弃了。何况从功能上看,用inject替代new,似乎提升不大。最后时刻这篇博文拯救了我:https://zhuanlan.zhihu.com/p/24454466 。此文完全抛开了其他博文涉及的Android+MVP等复杂构架,是最简的纯java案例,我一下子就看懂了,可能就10分钟,我就实现了0->1的转化。其他博文也写得很用心,但写得都原创 2017-08-04 02:03:04 · 516 阅读 · 0 评论 -
Parcelable, Serializable,Cloneable,copyProperties
存在着三件事,整理如下 Parcelable, Serializable(包括Externalizable+transient) -------压缩成字节流,再恢复成同类对象 Parcelable手工将字段放入Parcel字节流,无反射Serializable使用反射来发现字段及辅助信息Serializable使用Stream或ArrayByte之类原创 2017-10-24 00:33:45 · 689 阅读 · 0 评论 -
用TextWatcher限制输入长度并弹出提示
在EditText里面输入,限制输入长度并弹出提示,原本,这是最初级和普遍的需求了,但在细微处却有点小不方便。 方法之一,是在xml中添加限制:maxLength="10"。但是,当用户输入达到或超过限制时没有提示。 方法之二,给EditText添加TextWatcher监控,在输入超过限制时给予提示,并恢复为之前的状态。给予提示很容易,但怎么恢复为之前状态却需要小心。 另原创 2017-10-24 00:28:57 · 1495 阅读 · 0 评论 -
不等宽子view自动换行的窗口(auto wrap viewgroup)
需要一个窗口来显示一堆不等长的TextView,这些子view横向顺序排列,超出窗口宽度则换行。在“cn.bing.com”上使用关键字“自动换行viewgroup”进行搜索,发现最前面6~7个搜索结果都来自同一篇博客的转载:http://www.cnblogs.com/slider/archive/2011/11/24/2262161.htmlhttp://blog.csdn原创 2015-03-16 16:46:38 · 1149 阅读 · 0 评论 -
修改Adapter实现GridView列表中的增加按钮
如下是常见的GridView,红色是显示的图片,绿色加号是增加图片的按钮,如何实现这样的效果?第一个思路,是在数据list最后位置增加一个加号图片数据,但这样改动原始list数据的方法显然不好,牵扯很多。第二个思路,是在Adapter里面的数据list最后一个位置增加加号图片数据,但是,为了显示一个按钮而变动正常数据list总是不妥的。再有一点,Adapter中数据list的头指针原创 2015-02-14 14:47:59 · 2471 阅读 · 0 评论 -
在ListView上使用CheckBox的自定义Adapter写法
这似乎是一个经常的UI设计,所以这里值得记录一下。写自定义的Adapter的主要麻烦在于其中的getView()方法,又特别在于其中CheckBox状态的保存和恢复。编写的一个原则是,尽可能吻合软件工程需求,比如耦合与分离,尽量简单。标准的ListView构建过程是:1、首先构建一个ArrayList(或其他List)来保存数据2、用上述List构建ArrayAdapter原创 2013-09-19 18:56:55 · 4775 阅读 · 2 评论 -
Android系统的OS界面学习
从内核及嵌入式系统方向转到Android开发,我第一个本能的目标就是搞清楚Android是怎样封装Linux并提供一个新OS界面。截止到目前为止,我看到如下封装:1、每个应用对应一个进程,每个应用在未结束之前不能再启动一个实例或说进程。2、每个进程配套一个主线程,或称UI线程,缺省情况下所有Activity等都在这个主线程内运行。3、可以另外启动一个线程,用于一些耗时的操作。原创 2012-07-05 14:36:45 · 805 阅读 · 0 评论 -
WebView学习整理
一直有个说法,WebAPP会替代NativeAPP,因为WebAPP是跨平台的,直接在浏览器上运行,这是未来的方向。在浏览developer.android.com时看到其中WebAPP部分,立即吸引了我。但这个WebAPP不同于前述的运行于浏览器之上的WebAPP,而只是一个嵌入到NativeAPP中的WebView界面,类似某个软件里面嵌入了WebPage。不过了解这部分应该有助于以后开发运行原创 2012-07-18 23:21:24 · 991 阅读 · 0 评论 -
最简整理Binder Driver
Android的C/S体系里有三个角色: Server 0,负责服务的登记、检索等管理工作,也称Context Manager,节点编号(Handle)是0 Server N,提供某种服务 Client n,索取某种服务从上往下看,Binder Driver是一个字符设备,提供字符流操作函数在内部,为Android系统的C/S体系提供支撑,包括:原创 2013-03-14 14:32:03 · 717 阅读 · 0 评论 -
Android Styles / Themes要点整理
(整理得比较草,用于以后查找) style作用于View,而theme是作用于activity或application的style。一共如下几个要点: Style的存放位置 所有可能可能的style属性 一套Theme里面可以包括的style属性 Android系统本身已经提供的大量的theme 系统缺省的them原创 2013-06-17 23:19:10 · 3747 阅读 · 0 评论 -
Wifi P2p连接步骤整理
原文:http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html标题:Creating P2P Connections with Wi-Fi刚开始看P2p连接的时候,感觉头绪很多,步骤很乱,弄不清楚来龙去脉。现在用自己的话理了一下。P2P连接步骤原创 2013-10-02 17:15:18 · 19370 阅读 · 8 评论 -
Database层和ContentProvider层整理
概略 Android系统的数据存储有两个层次,从下到上分别是 持久化数据层:使用SQLite数据库或文件或其他存储方式构成的持久化数据层 抽象数据层:使用ContentProvider封装出来的抽象数据层持久化数据层(我们这里主要关注使用SQLite数据库的情况) SQLite所谓的创建数据库其原创 2013-11-01 03:13:26 · 973 阅读 · 0 评论 -
第一个APP及stackoverflow
今天把第一个APP更新为1.0版本,虽然简陋,但基本可用。代码网址在:https://github.com/maxyou/FileCmd,可以安装的apk放在:https://www.dropbox.com/s/0lwi83hf3q5j8vj/FileCmd.apk这是一个双窗口的文件管理器。较远的计划是做一个利用NFC或WifiDirect的文件分享工具,那么第一步是要做一个文件原创 2013-12-04 14:42:58 · 3048 阅读 · 0 评论 -
android横竖屏切换与activity的销毁重建
activity在什么情况下被销毁? 用户按回退键 调用finish 放在回退栈中太久 横竖屏切换前面两种情况下 系统会认为用户不再需要这个activity了,所以在销毁时不会做任何事 没有任何浏览方法能倒回去,只能再次启动该app在第三、四种情况下 用户可以通过回退键或其他方式浏览回去原创 2014-01-25 03:20:29 · 4821 阅读 · 4 评论 -
在notification中设置PendingIntent
在android屏幕的通知栏中增加notification,以显示mediaplayer控制面板点击控制面板的按钮将发送intent来控制mediaplayer这些intent将以PendingIntent的形式绑定到控制面板上的按钮上不能工作的代码:public void sendNotification(int status) { if (playingFile原创 2014-03-06 03:28:44 · 10147 阅读 · 3 评论 -
向监听类传递参数
我们给按钮设置监听器时,我们有可能希望给监听函数一个参数,或让该监听函数能够操作外面的变量,如下是一种愿望:@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { fragmentView = inflater.i原创 2014-03-13 16:42:45 · 2533 阅读 · 0 评论 -
Low Memory状态下app状态的恢复
app结构 activity带有ViewPager ViewPager上带有4个fragment这是非常典型的结构操作过程 点icon打开app 点击home键隐藏app 再次点击icon唤回app 点击home键隐藏app 开启多个其他app,要很耗费内存那种 点击home键隐藏这些app原创 2014-02-27 15:35:37 · 2080 阅读 · 0 评论 -
Android官方ApiDemo中animation部分代码要点整理
ApiDemo动画代码技术点整理AnimationCloning clone AnimatorSet,也可以cloneAnimationLoading XML定义animator ValueAnimator和ObjectAnimator的XML定义不同,后者要提供属性名AnimationSee原创 2014-10-13 16:47:56 · 1290 阅读 · 0 评论 -
我的第一个开源组件:一个抹出来的快捷菜单按钮
最近看到一种快捷菜单按钮,是按一个钮,在其周围弹出若干个钮,并排在圆周上。再按圆心处按钮则收回弹出的按钮。我认为这里值得改进的地方有:1、最初得有一个按钮浮现,这个按钮有点占地方。2、当用户放弃操作时,用户需要再按一下按钮来收回弹出的按钮。这个动作有点多余。我认为精简一个动作和少占一个地方都有极大的价值,所以我设计的快捷按钮是:1、平时不占任何空间,通过手势唤出原创 2014-11-06 23:44:31 · 730 阅读 · 0 评论 -
View及ViewGroup的布局方法及相互关系
两次遍历 第一次measure,测试child所需空间 第二次layout,给child安排空间方法之间的相互关系,重点是mesure和layout~~~~第一遍是mesure~~~~~~~~~~~View类 mesure()设置为final,禁止被派生类override onMesure原创 2014-10-15 00:36:09 · 2318 阅读 · 0 评论