自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1802)
  • 资源 (15)
  • 收藏
  • 关注

原创 我写的《高性能Android开发技术》一书已正式出版全国发行

我写的《高性能Android开发技术》一书,已由北京航空航天大学出版社正式出版并全国发行,京东上的发售页面链接地址:https://item.jd.com/12602702.html感谢北京航空航天大学出版社,感谢北京航空航天大学出版社的董宜斌先生、张冀青老师,感谢CSDN,感谢给予我帮助和支持的人!谢谢你们!我的邮箱:[email protected]...

2019-05-11 23:10:56 4027 13

原创 Int整数相除,math.ceil向上取整,Kotlin

Java小数点数字和百分号数字之间的转换小数点数字和百分号(百分比)数字之间的转换在证券金融业很常见,需要经常进行两者之间相互转换。如代码: String s1 = "21.8%";Java小数点数字和百分号数字之间的转换_将浮点型转为百分比 java-CSDN博客。Kotlin浮点数Float整数Int乘*除/精度损失-CSDN博客。Kotlin toInt() +0.5 toInt() Math.round()_kotlin round-CSDN博客。

2024-04-19 23:18:35 113

原创 Android优化RecyclerView图片展示:Glide成堆加载批量Bitmap在RecyclerView成片绘制Canvas,Kotlin(b)

【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。现在结合他人的代码加以修改,给出一个以原始图形中心为原点,修剪图片为头像的工具类,此类可以直接在布局文件中加载使用,比。文章浏览阅读670次。

2024-04-19 00:01:35 492

原创 ArrayList chunked切块,Kotlin

给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin_zhangphil的博客-CSDN博客。扁平的MutableList元素每隔若干元素一组装入新MutableList,Kotlin-CSDN博客。给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin_zhangphil的博客-CSDN博客。扁平的MutableList元素每隔若干元素一组装入新MutableList,Kotlin_kotlin mutablelist3个一组-CSDN博客。

2024-04-17 23:52:36 843

原创 Android GridLayoutManager Glide批量加载Bitmap绘制Canvas画在RecyclerView,Kotlin(a)

【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。现在结合他人的代码加以修改,给出一个以原始图形中心为原点,修剪图片为头像的工具类,此类可以直接在布局文件中加载使用,比。文章浏览阅读670次。

2024-04-16 23:06:25 848

原创 Android GridLayoutManager SpanSizeLookup dynamic set grid cell column count,Kotlin

Android RecyclerView的StaggeredGridLayoutManager实现交错排列的子元素分组先看实现的结果如图:设计背景:现在的产品对设计的需求越来越多样化,如附录文章2是典型的联系人分组RecyclerView,子元素排列到一个相同的组,但是有些时候,UI要求把这些元素不是垂直方向的,而是像本文开头的图中所示样式排列,这就需要用StaggeredGridLayoutMa_staggeredgridlayoutmanager。

2024-04-14 23:30:41 666

原创 Android Glide裁剪centerCrop到fitCenter,复用内存缓存Bitmap加工TransformationUtils.fitCenter,Kotlin

Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案RoundedBitmapDrawable是Android在support v4的扩展包中新增的实现圆角图形的关键类,借助RoundedBitmapDrawable的帮助,可以轻松的以Android标准方式实现圆角图形图象。现在结合他人的代码加以修改,给出一个以原始图形中心为原点,修剪图片为头像的工具类,此类可以直接在布局文件中加载使用,比。所实现的在Kotlin动态代码中绘制的描边效果。

2024-04-13 23:02:42 953

原创 Android RecyclerView性能优化及Glide流畅加载图片丢帧率低的一种8宫格实现,Kotlin

【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。现在结合他人的代码加以修改,给出一个以原始图形中心为原点,修剪图片为头像的工具类,此类可以直接在布局文件中加载使用,比。文章浏览阅读670次。

2024-04-12 23:03:40 759

原创 Android性能优化RecyclerView预加载LayoutManager的getExtraLayoutSpace,Kotlin

文章浏览阅读501次。文章浏览阅读428次。上面要预加载10条,每条item高度是100pix,也就是说,正确的情况下,如果RecyclerView不作任何调优,那它只加载当前屏幕可见区域position为0~21的item(每个item高度为100pix),如果配置了getExtraLayoutSpace,那么会多(Extra)加载10条position为22~31的item,其中22~31为屏幕底部不可见的区域中内容,被“预加载”出来。文章浏览阅读410次。

2024-04-11 23:07:22 1231

原创 Android Glide load grid RecyclerView scroll smooth, high performance and ,Kotlin

【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。现在结合他人的代码加以修改,给出一个以原始图形中心为原点,修剪图片为头像的工具类,此类可以直接在布局文件中加载使用,比。文章浏览阅读670次。

2024-04-10 23:22:18 723

原创 Are Android Glide placeholders loaded asynchronously?

在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。假设实现一个简单的功能,对传入要加载的path路径增加一定的筛选、容错或“重定向”,需要自定义一个模型,基于这个模型,让Glide自动匹配模型展开加载。

2024-04-09 23:23:15 538

原创 git查看单独某一个文件的历史修改记录

文章浏览阅读1.8k次。git统计历史上某一段时间代码的修改量有两个方法,一个是git log的since - until,另外一个是git log after before,例如: git log --after="2018-04-16 00:00:00" --before="2018-04-16 10:11:12" --stat或者:git log --since="2018-04-16 01:10:00" --un..._gitee指定时间段代码量统计。..._git --no-pager 作用。

2024-04-08 23:38:58 717

原创 Android协程GlobalScope、lifecycleScope、CoroutineScope的launch,Kotlin

文章浏览阅读449次。coroutineScope 创建独立协程作用域,直到所有启动的协程都完成后才结束自己。则控制台没有任何输出,kotlin协程在launch时候启动一个协程,不阻塞线程,main主函数迅速运行完成,并退出,但此时在for循环启动的线程还没有运行输出就因为main主线程的退出而不可见(系统销毁)。GlobalScope.launch 创建一个顶级协程,它很轻,但运行时还是会消耗内存资源,且可以一直运行直到整个应用程序停止退出,这很可能导致内存泄露,谨慎使用 GlobalScope。

2024-04-07 23:26:29 826

原创 Android Glide配置AppGlideModule定制化线程池,Kotlin(1)

在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。文章浏览阅读670次。假设实现一个简单的功能,对传入要加载的path路径增加一定的筛选、容错或“重定向”,需要自定义一个模型,基于这个模型,让Glide自动匹配模型展开加载。文章浏览阅读670次。

2024-04-03 23:07:59 1058

原创 Android Studio的Profiler生成trace排查Android冷启动耗时,Kotlin

注意,上面的调用层次结构自上往下即是函数方法的调用链,上面的函数启动了下面的函数。此时AS下面就会自动记录、生成trace,因为只是排查冷启动阶段耗时,所以可以阶段很多时间trace即可,但至少需要大于1500ms,因为那两个耗时方法需要覆盖到。上面有两个方法耗时:mySleep500()和mySleep1000(),目标是通过Profiler的trace把这两个冷启动阶段的耗时方法找到。利用AS自带的Profiler抓取trace排查定位冷启动耗时方法,不用写代码,直接配置AS即可完成。

2024-04-02 23:45:59 1027

原创 Android屏幕硬件宽高和当前View显示区域的宽高,Kotlin

Android测量View宽和高的一般通用方法众所周知Android在onCreate里面如果直接对一个View进行getWidth,getHeight时候,得到到的值全部是0,这样拿不到View的宽和高的值,但有时候又必须在初始化阶段获取一个View的宽和高,现在给出一个基本的通用方法: int w = View.MeasureSpec.makeMeasureSpec(0, Vie_安卓获取view的宽高。Android测量View宽和高的一般通用方法_安卓获取view的宽高-CSDN博客。

2024-03-31 23:12:42 542

原创 Android RecyclerView canScrollVertically方向与返回值,Kotlin

Android RecyclerView滑动到底部/上拉/上拉见底自动加载更多实现以及点击/长按事件处理Android RecyclerView下拉加载更多有Android谷歌官方的实现,实现的方式是通过SwipeRefreshLayout把RecyclerView包裹起来,然后就可以通过SwipeRefreshLayout的回调接口实现下拉刷新功能。Android RecyclerView滑动到底部/上拉/上拉见底自动加载更多实现以及点击/长按事件处理_android 模拟上拉事件-CSDN博客。

2024-03-30 23:07:39 378 1

原创 Android熄屏/亮屏,旋转屏幕/横竖屏切换生命周期变化与activity销毁重建

Android设备屏幕锁定/解锁/屏幕点亮监听Android屏幕锁定,解锁,开屏比较常用,故抽象成一个公共的DeviceScreenListener。在使用使用,首先new出一个DeviceScreenListener,然后注册(register)使用,使用后不要忘记注销,一般在生命周期的onDestory里面unregister。Android设备屏幕锁定/解锁/屏幕点亮监听_android 监听设备解锁完成-CSDN博客。Android熄屏/亮屏,旋转屏幕/横竖屏切换生命周期变化。

2024-03-29 23:12:12 1163

原创 Android ViewPager2 setOffscreenPageLimit预加载Fragment,Kotlin

2、如果设置了mOffscreenPageLimit(并且,mOffscreenPageLimit通过setOffscreenPageLimit()这个API接口也只能设置 >=1 的值),ViewPager2就退化成过去老版的ViewPager了,除了把当前可见的那个Fragment加载出来外,还会根据用户设置的mOffscreenPageLimit值,加载mOffscreenPageLimit个不可见的Fragment。日志显示,只加载了当前可见的0号Fragment,没有加载1号Fragment。

2024-03-28 00:44:22 1059

原创 Kotlin报错:null cannot be cast to non-null type kotlin.Int

it.todo() //函数内使用it替代object对象访问属性和方法。it.todo() //object不为null,才会执行let函数。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。如果a 是 b,则 a as b。当a为null时,什么都不执行。如果a==null,抛出空指针。=null时,执行a。当a==null时,执行b。kotlin常用表达式let,?

2024-03-26 23:26:47 490

原创 Kotlin协程CoroutineScope命名空间CoroutineName,Kotlin

文章浏览阅读323次。coroutineScope 创建独立协程作用域,直到所有启动的协程都完成后才结束自己。runBlocking 和 coroutineScope 很像,它们都需要等待内部所有相同作用域的协程结束后才会结束自己。两者主要区别是: runBlocking 阻塞当前线程,而 coroutineScope不会,coroutineScope会挂起并释放底层线程供其它协程使用。kotlin协程coroutineScope。kotlin协程coroutineScope-CSDN博客。

2024-03-25 23:03:01 613

原创 Kotlin的lateinit关键词

有时,并不能定义一个变量或对象值为空,而也没办法在对象或变量在定义声明时就为它赋值初始化,那么这时就需要用到Kotlin提供的延迟初始化lateinit。另外,在Android中,有些写在外层的View对象,如Button,TextView虽然可以通过?.,显得代码臃肿多余,Kotlin设计出lateinit,这样开发者又可以像写Java那样,直接 button。但Kotlin语言假定开发者在使用该lateinit变量或对象时,开发者会完成初始化赋值、保证提供非空(null)值(然而,天知道呢!

2024-03-24 23:03:18 534

原创 android.os.TransactionTooLargeException解决方案,Kotlin

文章浏览阅读422次。本文作者:Zhang Phil原文链接:Android Activity生命周期以及onSaveInstanceState、onRestoreInstanceState要点备忘一般的,当Android activity的生命周期进入onPause后,Android系统紧接着就要回调:protected void onSaveInstanceState_activity生命周期 onsaveinstane。两边改造,换用Binder,参考(

2024-03-23 23:08:16 1057

原创 Kotlin/Java ArrayList与OOM(OutOfMemoryError)

只是把list原先的每个元素置为null,而ArrayList在内存堆上分配的内存空间并未立即释放,所以,即便调用了ArrayList的clear(),并不会立即释放ArrayList在内存堆上分配的空间,clear()只是将原先ArrayList里面的每个元素置为null,然后等待JVM的GC的垃圾回收,而JVM的垃圾回收时机是不确定的,上层应用代码无法控制。一个对象置为null,也只是告诉JVM,可以回收此对象,而JVM会不会回收、何时回收,取决于JVM,不取决于 list=null 这句代码。

2024-03-21 23:11:17 967

原创 Kotlin runBlocking CoroutineScope synchronized简单死锁场景

Java并发多线程环境中,造成死锁的最简单的场景是:多线程中的一个线程T_A持有锁L1并且申请试图获得锁L2,而多线程中另外一个线程T_B持有锁L2并且试图申请获得锁L1。线程的锁申请操作是阻塞的,于是造成线程T_A和线程T_B无法正确获得想要的锁,两个线程被阻塞进入死锁状态。Java并发多线程环境中,造成死锁的最简单的场景是:多线程中的一个线程T_A持有锁L1并且申请试图获得锁L2,而多线程中另外一个线程T_B持有锁L2并且试图申请获得锁L1。A-0 申请 lock1...A-0 申请lock2...

2024-03-20 23:04:15 1059

原创 Android TransactionTooLargeException排查定位

文章浏览阅读422次。文章浏览阅读5.5k次。本文作者:Zhang Phil原文链接:Android Activity生命周期以及onSaveInstanceState、onRestoreInstanceState要点备忘一般的,当Android activity的生命周期进入onPause后,Android系统紧接着就要回调:protected void onSaveInstanceState_activity生命周期 onsaveinstane。

2024-03-19 23:59:41 872

原创 Kotlin runBlocking CoroutineScope launch async

runBlocking 内部启动的3个协程做耗时操作,从输出可以看到3个协程交叉并发执行,runBlocking 会等到3个协程执行结束后才退出,输出结果有明确先后顺序。kotlin的runBlocking 当内部相同作用域的所有协程都运行结束后,在 runBlocking 之后的代码才能执行, runBlocking 会阻塞所在线程。kotlin的runBlocking 当内部相同作用域的所有协程都运行结束后,在 runBlocking 之后的代码才能执行, runBlocking 会阻塞所在线程。

2024-03-18 23:15:13 1060

原创 Android onViewAttachedToWindow onWindowAttached onPreDraw onDraw onGlobalLayout,Kotlin

文章浏览阅读2.9k次。Android自定义ViewGroup:onMeasure与onLayout(1)Android自定义一个ViewGroup,需要重写ViewGrouo里面的两个最重要的回调函数onMeasure()与onLayout()。如果开发者自己摆脱Android为我们做好的几套布局(如常见的线1性布局、相对布局、帧布局等等),往底层实现view呈现,那么我们就得在ViewGroup中小心计算_android viewgroup onmeasure onlayout。

2024-03-16 00:19:12 961

原创 Kotlin/Java中String的equals和==

,而此时再次对s进行操作改变s的值时候,如再次给s赋值使得s=”_string类的字符串与stringbuffer类的字符串判断是否相同。每次Java/Kotlin定义/创建一个String后,​如果String内存缓存池内不存在给定值比如"zhang"相同的String对象,那么此时Java将为此创建新的String对象,并存放在String缓存池内。如果String缓存池内存中有与指定值相同的String对象,那么此时Java将不创建新String对象,而直接返回已存在的String对象的引用。

2024-03-14 23:03:01 706

原创 Android Bundle putBinder传输超过1MB数据,Kotlin

文章浏览阅读422次。_安卓开发系统切换主题 重走生命周期。文章浏览阅读5.5k次。本文作者:Zhang Phil原文链接:Android Activity生命周期以及onSaveInstanceState、onRestoreInstanceState要点备忘一般的,当Android activity的生命周期进入onPause后,Android系统紧接着就要回调:protected void onSaveInstanceState_activity生命周期 onsaveinstane。

2024-03-13 23:12:12 1046

原创 Kotlin/Java重写equals后==表现(2)

因为重写了equals方法,那么== 或者 equals 比较两个对象是否相同,则调用重写后的equals方法,而equals方法只是比较两个对象的id,而id都是2024,所以均返回true。

2024-03-07 23:09:09 555

原创 Kotlin/Java hashCode与equals/==号(1)

如果定义的Kotlin/Java对象没有重写hashCode和equals,那么Kotlin/Java就调用根(super)的Obejct的hashCode()和equals()方法。Kotlin/Java比较两个对象是否相同的equals方法(相当于==),是根据两个对象的内存地址,如果默认不重写hashCode()实现,即可以简单理解为比较hashCode()的值是否相等,因为hashCode()值即为内存地址值。Kotlin/Java的hashCode()方法默认返回对象在内存中地址的整数值。

2024-03-06 23:18:50 463

原创 Android挖取原图手指触点区域RectF(并框线标记)放大到ImageView宽高与矩阵mapRadius,Kotlin

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap,Kotlin_bitmapfactory解码宽高-CSDN博客。Android矩阵setRectToRect裁剪Bitmap原图Matrix放大,mapRect标记中心区域,Kotlin-CSDN博客。实现的是把原图中心区域的一片小图挖取出来放大放到下面的ImageView里面,现在不再固定中心位置,而是以手指在上图的触点位置为中心位置,挖取一片区域图放大,然后放到下面的ImageView里面。

2024-03-02 00:03:19 1222 1

原创 Android Studio level过滤查看各个等级的日志

Android Studio移动.gradle文件夹重新设置新路径_android studio设置gradle路径_zhangphil的博客-CSDN博客。android studio自带手机投屏功能_android studio 投屏_zhangphil的博客-CSDN博客。android studio自带手机投屏功能_android studio 投屏-CSDN博客。android studio自带手机投屏功能_android studio 投屏_zhangphil的博客-CSDN博客。

2024-02-29 23:08:13 1137

原创 Android res/values/locale_config.xml文件

文章浏览阅读289次。Android重写onConfigurationChanged规避横竖屏切换时候重新进入onCreate生命周期Android系统内在的机制,当activity在横竖屏切换时候,会强制重新开始进入activity的生命周期onCreate,在有些特殊的场景,开发者不希望重新进入onCreate生命周期,那么,可以通过重写Android的onConfigurationChanged规避。Android语言切换LOCALE_CHANGED与CalendarView,kotlin。

2024-02-27 23:04:43 1136

原创 Glide报错:java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity

原因是Glide在后台线程加载一个资源回来后,上层activity已销毁。

2024-02-26 23:03:25 306

原创 Android RecyclerView AsyncListDiffer DiffUtil,Kotlin(b)

【代码】Android RecyclerView AsyncListDiffer DiffUtil,Kotlin(b)

2024-02-25 23:02:50 390

原创 Android BitmapDrawable.bitmap与BitmapFactory.decodeResource获取不到原始图像素级真实宽高,Kotlin

文章浏览阅读1.8k次。Android传递Bitmap的两种简单方式及其缺陷_android上传bitmap_zhangphil的博客-CSDN博客。Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap,Kotlin_bitmapfactory解码宽高-CSDN博客。Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap,Kotlin_bitmapfactory解码宽高-CSDN博客。

2024-02-24 23:02:53 1195

原创 Kotlin filterIsInstance filterNotNull forEach

一、flow ,emit,onCompletion,collect。四、map,重组改写数据。八、conflate 合并。九、debounce去重。二、函数作为flow。kotlin协程flow filter map flowOn zip combine(1)_zhangphil的博客-CSDN博客。Kotlin HashMap entries.filter过滤forEach_kotlin map.entries.foreach-CSDN博客。

2024-02-23 23:06:25 625

原创 Android横竖屏切换configChanges=“screenSize|orientation“避免activity销毁重建,Kotlin

Android重写onConfigurationChanged规避横竖屏切换时候重新进入onCreate生命周期Android系统内在的机制,当activity在横竖屏切换时候,会强制重新开始进入activity的生命周期onCreate,在有些特殊的场景,开发者不希望重新进入onCreate生命周期,那么,可以通过重写Android的onConfigurationChanged规避。那么,每次横竖屏切换都会重新走onCreate() ... onDestory()生命周期,即消耗重建。

2024-02-22 23:04:22 865

vcruntime140_1.dll

vcruntime140_1.dll

2022-01-10

2019年民航机场吞吐量排名.xls

2019年民航机场生产统计公报。数据来源,民用航空局。该excel表格中,罗列了中国各大城市在2019年的机场客流量数据和排名。

2020-12-10

链家2020年9月二手房数据

全国的房产价格地址经纬度等信息,2020年9月份链家的二手房数据包。下载后是一个excel表,将这个excel表另存为csv数据文件,可以用pandas读取。

2020-12-10

strava_com_sample_utf8.xls

一个excel表格数据,数据是一个公开的Python数据集,包含路径经纬度散点。提取里面的路径经纬度散点,可以构绘出地图线路。

2020-12-10

jxta2.7.zip

JXTA 2.7,P2P分布式计算框架JXTA。version 2.7。shell 2.5.

2019-08-21

AXMLPrinter2的jar文件及源代码文件

Android逆向工程之AXMLPrinter2的jar文件及源代码文件。

2018-11-08

digital-7字体(LED数字样式字体)

digital-7字体(LED数字样式字体)。该字体主要用于显示LED数字灯样式的字体。直接导入到Android assets文件下,作为font 字体使用。

2017-09-05

Android-PullLayout:仿UC天气下拉和微信下拉眼睛头部弹入淡出

Android-PullLayout:仿UC天气下拉和微信下拉眼睛头部弹入淡出

2015-11-29

QQ侧滑边栏源代码

移动版QQ侧滑边栏源代码(Android)。UI交互设计样式和QQ高度相似。

2015-10-29

DrawerLayoutDemo

Android DrawerLayout Demo

2015-09-24

MaterialDesignLibrary_Code and Lib合集

MaterialDesignLibrary_Code and Lib 内含:NineOldAndroidsLibrary包和一个测试项目:MaterialDesignActivity

2015-09-21

Android Volley

Android网络开发框架Volley需要的jar包:volley.jar。该包直接导入到自己的项目即可使用。

2015-08-27

sqlitemanager.jar

sqlitemanager.jar。用于查看SQLite数据库的第三方插件。

2015-07-16

SearchDemo

Android搜索建议演示代码,完整的项目代码文件。

2015-04-17

Android底部弹出iOS7风格对话框_库文件资源

Android底部弹出iOS7风格对话框。库文件,直接作为库添加到自己的项目加以引用即可。

2015-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除