- 博客(14)
- 收藏
- 关注
原创 Android App Banner,用它就够了。无限轮播、简单易用、扩展性强的BannerView
按照惯例先上效果图: 写在前面GitHub上也是有比较详细的使用介绍的,如果你想直接看GitHub上的也可以直接点击后面的传送门去往GitHub。我是传送门本文的内容可能有点长,如果你想要直接但Demo的源码的,可以直接跳到最后,最后有完整的代码(包括Java代码和XML代码)。前言今天给大家推荐一款简单易用、扩展性强且超级稳定的轮播图库。·为什么说简单已用?答:因为实现起来比较简单,几行
2019-11-21 14:52:00 2372 2
原创 EnvironmentPlugin 一款用来配置可动态切换App环境的Gradle插件
简介在gradle中配置开发时的所有环境,你只需要很少的代码就能实现环境动态切换的功能。而在打生产包时你只需要在gradle中修改release的值为true就能将非生产环境剔除(不会将非生产环境打包到Apk中),从而保证非生产环境不会泄漏。在gradle中配置完成后只需要clean一下就会在BuildConfig的目录中生成一个EnvConfig的类,你只需要通过EnvConfig.getEn...
2019-11-15 17:39:12 1168
原创 Android 自定义Html标签
前言我们在Android的日常开发中经常会用到TextView,而在TextView的使用中有可能需要像下面这样使用。上面只用了一个TextView就可以实现,有人可能会想到使用Html.fromHtml("...")实现,但是Android原生的font标签是不支持size属性的。我们来看下源码,看下font标签到底支持哪些属性: //摘抄自Android API源码(Html类)...
2019-11-15 17:36:10 850 2
原创 ViewPager中复用View导致在某些自定义动画下会有问题的bug。
前言最近在封装轮播图的时候,为了提高性能我使用了缓存,将每个被释放的view进行缓存然后在下次要用到是直接使用缓存的Veiw。这样做的好处就是不会一直inflate布局,也不会有一直设置图片标题等赋值操作。先来看下我PagerAdapter中的关键代码吧。 /** * 用来放置可以复用的页面的View。 */ private SparseArray<View> itemV
2017-09-14 14:48:27 642 2
原创 一个可以过滤其他开发者日志的LogUtil工具类,团队开发中的你值得拥有!
只要你是程序员就一定熟悉这么一个东西,那就是Log。Log是我们日常开发中必不可少的调试工具,如果你是团队开发中的一员,那么就一定有过这样的烦恼,那就是在调试过程中想要看你自己的日志的时候却发现其他小伙伴的日志确异常的多,很快就把你的日志顶没了。 这篇帖子将解决你的烦恼。你可以根据需求选择性的决定是否打印其他开发者的日志。(好了,下面进入正题。)首先奉上完整的代码public class LogU
2017-09-07 10:58:17 525 2
原创 Gradle配置之自定义APK名称及输出路径。
需求是这样的,我们的项目在上线的时候需要根据公司的明明规则重新对apk文件命名后才能发布到市场上。于是生成的每个apk文件都需要重新命名,如果渠道较少还好说,但是如果多的话就麻烦了。其实方法很简单,只需要在你的app的Build.gradle文件中添加以下代码就可以了。android { ……//省略部分代码 applicationVariants.all { ...
2017-07-20 11:05:54 6695 1
原创 利用buildConfigField从另一种角度解决BuildConfig.DEBUG的坑。
相信许多同学都有过使用BuildConfig.DEBUG来去区分当前是否是Debug版本的经历。而用过的同学都知道,如果你的项目中只有一个model的话基本没有什么问题,而如果你的项目中不止一个model那么BuildConfig.DEBUG的值就没有那么可靠了。我今天不会带领大家分析原因,也不会去正面解决这个问题。因为原因分析和问题的解决网上有很多,大家可以去自行搜索。我今天是带大家从另外一个角度
2017-07-19 16:09:23 2208
原创 Android7.0 自定义控件addView(...)无效,View的绘制流程(onMeasure、onLayout等)完全没执行的解决办法。
问题描述昨天在写一个自定义控件的时候遇到一个问题,就是我通过addView(View child) 方法添加View之后再7.0上没有显示出来,6.0上没有问题。通过AS自带的Layout Inspector工具检查发现我的自定义控件的宽高都是0,并且getVisibility()==VISIBLE,也就是说控件是显示的,只是没有宽高所以看不到。 先看下我addView的代码吧:void setF
2017-06-30 10:17:54 10215 2
原创 TabLayout踩坑之IllegalArgumentException: Tab belongs to a different TabLayout.
最近在开发中使用TabLayout的时候遇到了这个bug。bug就长下面这样(内容有点啰嗦,解决办法在最下面):05-24 21:54:36.989 17175-17175/com.testW/System.err: java.lang.IllegalArgumentException: Tab belongs to a different TabLayout.05-24 21:54:36.989
2017-05-25 00:02:28 3798
转载 关于小米手机开发中,不能打印、查看logcat日志的解决方法。
最近在开发过程中使用小米手机作为测试机的时候发现没有logcat日志输出。在网上找来找去终于找到了一篇解决的有效博客,这里特别记录一下,也希望能帮到别人。解决办法如下:在电脑上找到 .Android文件夹,win下在C:\Users\dell.android,mac的就在系统盘根目录下,(可能是隐藏的,我的在win下没有隐藏,mac下是隐藏的)在这个文件夹里找到adb_usb.ini这个文件,打开在
2017-05-17 15:30:38 16149 8
翻译 Android中JNI编程详解
Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Native)代码。因此JNI对Android底层开发人员非常重要。如何将.so文件打包到.APK让我们 先 从最简单的情况开始,假如已有一个JNI实现——libxxx.so文件,那么如何在APK中使用它呢?在我最初写类似程序的时候,我会将libxxx.
2016-10-09 18:06:59 387
原创 如何让EditText具有自动大小写转换的功能。
相信很多朋友都有过让EditText具备自动大小写转换的功能的需求,其实做法很简单。下面就来看一下怎么做吧。首先定义一个类继承ReplacementTransformationMethod类。这个类位于android.text.method包中。public class AutoCaseTransformationMethod extends ReplacementTransformationMet
2016-10-08 21:03:40 2126
原创 Android简单实现列表菜单--PopupMenu的简单使用。
最近发现PopupMenu用来做菜单非常的方便,而且使用也非常的简单,下面我们就来看下如何使用的吧。首先在布局文件中创建两个Button。<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tool
2016-10-07 01:22:53 6789
原创 如何让Fragment响应onBackPressed事件
如何在Fragment中接收返回键事件。最近在做一个案例的时候有一个需求,就是要在Fragment中响应用户点击返回键的事件。
2016-10-03 21:47:07 1469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人