Android App
文章平均质量分 68
本专利主要记录分享Android App开发中的知识,如四大组件的使用、View控件的自定义、android Animation的使用、Android线程池、Android window 、JNI开发Glide、OkHttp等三方库的使用,App开发中碰到一些问题的解决方法等知识
刘信的csdn
坚持底线,努力做好自己。
展开
-
android WIFi开发
android WIFI开发主要通过WifiManager这个类与系统进行跨进程通信实现的。这篇文章来讲解如何进行WIFI的操作和WIFI热点的操作。WIFI的操作首先需要添加以下权限: uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> uses-permissi原创 2018-01-08 16:22:40 · 723 阅读 · 0 评论 -
详解Android Studio+Gradle3.0编写JNI
今天学习下如何编写第一个JNI代码,实现JNI需要先下载NDK,由于现在Android Studio使用CMake编译jni的C/C++文件,所以还需要下载CMake和LLDB,如下图通过Android Studio来下载: 1.新建一个工程NDKSimple,如下图: (图中cpp...原创 2018-04-03 20:37:21 · 498 阅读 · 1 评论 -
一个水波纹动画的实现
效果图按照往常惯例先看下效果图设计原理要实现图中的水波纹效果其实也很简单,首先想到的使用ValueAnimator动画来实现。计算最里面的水波纹和最外面的水波纹的距离,然后通过onAnimationUpdate回调获取当前的值画圆,这里我们需要用一个List来保存从动画开始到动画结束所以的值。用来在onDraw()来计算画多少个水波纹。注意这里还有颜色的透明度的变化还有每个水波纹之间的距离...原创 2020-04-01 12:00:14 · 896 阅读 · 0 评论 -
一个带阴影效果的圆形控制的View,可以上下左右中进行控制
@[TOC] 一个带阴影效果的圆形控制的View,可以上下左右中进行控制先看一下效果图用法 <!-- app:center_text="@string/tv" 中间的文本 app:center_icon="@drawable/ok_tv_normal" 中间的图标 两个都设置优先使用图标 app:center_is_can_click="t...原创 2020-03-30 19:00:27 · 382 阅读 · 0 评论 -
Spinner的android:overlapAnchor属性引发的下拉列表显示不全问题
当在xml中设置android:overlapAnchor="false"使下拉框不遮挡住了Spinner的显示时,当Spinner下拉显示的列表数据过多时,且下拉列表方向为向上,将导致下拉列表的数据显示不完整,会少显示前面几条。这个问题困扰许久,特此记录下。所以还是不要用这个属性,设置setDropDownVerticalOffset()方法来达到不遮住的效果。...原创 2019-11-07 16:20:03 · 2119 阅读 · 0 评论 -
快速集成Twitter、Facebook登录并获取用户信息
最近公司做一个国外的项目,需要集成Twitter、Facebook登录,所以在此记录下集成的过程。由于Twitter、Facebook是国外软件,需要翻墙,这个自行解决。Twitter登录的集成首先需要在https://apps.twitter.com/这个网站创建你的APP,创建完之后可以获取到Consumer Key、Consumer Secret 。如下图: 集成步骤...原创 2018-03-10 12:51:19 · 4678 阅读 · 0 评论 -
InputMethodManager引起的内存泄漏解决方案,亲测有效
通过leakcanary检测内存泄漏,老是出现InputMethodManager引起的内存泄漏,查看过很多资料,应该是android源码的bug。leakcanary官方提供的解决这个问题的方法,测试发现没有用。通过反复查阅测试发现下面的方法可以解决这个问题,所以记录下来先写一个透明的过渡Activity/** * 解决InputMethodManager引起的内存泄漏 * ...原创 2018-04-04 19:58:10 · 2781 阅读 · 1 评论 -
RxJava2操作符(一)
RxJava是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。简单来说就是异步操作工具库。它可以在碰到繁琐、复杂的异步的功能,依然能用保持代码的简洁。 RxJava使用的是观察者模式,Observable(被观察者)与Observer(观察者)通过 subscribe (订阅)实现订阅关系。下面来先写一个简单的例子。来说明他们之间的关系 /* *...原创 2018-04-04 19:59:11 · 258 阅读 · 0 评论 -
Spinner样式的修改
修改Spinner中文字、箭头,自定义样式:http://blog.csdn.net/crazy1235/article/details/70903974转载 2018-03-29 16:32:33 · 2326 阅读 · 0 评论 -
带进度的圆形进度条的实现
今天通过自定义View来实现一个带进度的圆形进度条,实现的最终效果如下图所示: 现在来讲一下设计的思路:首先这个进度条可以自定义小圆角矩形的数量、小圆角矩形大小、小圆角矩形的圆角角度、未完成进度时的颜色,完成进度时的颜色、文字大小、文字颜色、圆形半径,所以需要自定义这些参数;那如何画这个圆形进度呢?我们需要先画一个小圆角矩形,再旋转画布再画矩形,如图这里有12个小圆角矩形,每次旋转360/1...原创 2018-04-29 17:57:57 · 1886 阅读 · 0 评论 -
完美解决将布局延伸到状态栏中
1.前言上篇文章讲了如何把ToolBar封装到基类Activity中和如何在android4.4及以上系统中实现沉浸式状态栏、如何更改状态栏字体颜色。接下来这篇文章介绍Fragment的简单封装和如何将内容布局延伸到状态栏当中。2.实现步骤先看一下实现的效果图: 如图这个Activity中有四个Fragment,每个Fragment状态栏颜色不一样并且首页那个Fr原创 2017-12-08 18:10:55 · 5473 阅读 · 0 评论 -
Glide的高级用法
这个礼拜学习了郭霖大神的Glide最全解析专题文章,特此在此做个总结。记录一些Glide的高级用法。自定义GlideUrl加载图片如果图片出于安全的考虑需要在图片地址后面加上token,这样导致同一张图片导致不同的地址,列如下面的地址:http://url.image.com/test.jpg?token=adfnjkews8832734这里的token可能随时都会变,这样就导致图原创 2018-02-03 16:52:44 · 7393 阅读 · 1 评论 -
Android中的线程池详解
Android常见的线程池有四种,分别是FixThreadPool、CachedThreadPool、ScheduledThreadPool、SingleThreadExecutor。他们都是直接或间接通过配置ThreadPoolExecutor来实现自己的功能特性的。所以下面我们首先来介绍ThreadPoolExecutor这个类。ThreadPoolExecutorThreadPool原创 2018-01-27 15:21:33 · 405 阅读 · 0 评论 -
View的自定义属性和位置关系
1.View自定义属性1.1 在资源文件中定义自定义参数,如: <declare-styleable name="IRecyclerView"> <attr name="refreshHeaderLayout" format="reference" /> <attr name="loadMoreFooterLayout" format="reference" />原创 2017-11-18 11:41:02 · 242 阅读 · 0 评论 -
ToolBar的封装、动态改变状态栏颜色
1.前言上一篇文章介绍了ToolBar的使用方法,在日常开发中ToolBar会在很多的Activity中同时使用,所以我们有必要把ToolBar进行封装,方便调用。2.ToolBar的封装基本思路是写一个单独的ToolBar的文件,再写一个基类Activity重写它的setContentView()方法,在这个方法里添加ToolBar。具体代码如下:package bcjm.myapplicatio原创 2017-11-30 20:08:59 · 1313 阅读 · 0 评论 -
判断ListView、WebView、ScrollView到达顶部和底部
1.ListView/** * 判断listView到达顶部 * @return */ public boolean isListViewReachTop() { boolean result=false; if(getFirstVisiblePosition()==0){ View topChildView原创 2017-12-08 18:51:26 · 610 阅读 · 0 评论 -
ToolBar的使用
1.概述Toolbar是google在android 5.0推出的新的导航栏控件,用于替代ActionBar,在android 5.0以下使用该控件需要导入support V7 包。2. 使用步骤2.1 引入V7包在gradle中导入v7包,如下:compile 'com.android.support:appcompat-v7:25.3.0'后面的版本号最好和compileSdkVersion 版原创 2017-11-23 17:55:46 · 344 阅读 · 0 评论 -
ViewFlipper的使用
ViewFlipper的介绍ViewFlipper是一个切换控件,本质是一个FrameLayout,所以可以添加子控件,让这些子控件有切换效果并可以设置切换动画。可以用来做轮播图、跑马灯等效果。ViewFlipper的基本方法在xml布局中的方法介绍:android:autoStart: 设置自动加载下一个Viewandroid:flipInterval:设置View之间切换的时间间隔andro原创 2017-12-17 13:38:54 · 654 阅读 · 0 评论 -
RemoteViews讲解
RemoteViews在日常开发中主要用于通知栏和桌面小部件的开发。它继承了Parcelable,所以可以很好的通过Binder来进行跨进程通信,里面提供了一系列的方法用于跨进程的更新界面。RemoteViews一个最常用的构造方法是RemoteViews(String packageName,int layoutId),第一个参数是包名,第二个参数是待加载的布局文件。RemoteViews支持的控原创 2017-12-26 20:02:30 · 2012 阅读 · 0 评论 -
Notification讲解
notification即通知在开发中很常见,在开发中我们根据需求要实现各种各样的通知,如普通通知、进度条通知、可展开的通知、媒体通知、自定义布局的通知。本篇文章就来讲解这些通知的实现。普通通知为了兼容性我们用v7包下的NotificationCompat 来实现通知,这个类是继承了·v4包下的NotificationCompat。下面先写一个简单的通知,再慢慢讲解。 Notification原创 2017-12-23 11:35:53 · 603 阅读 · 0 评论 -
仿微信QQ查看大图缩放动画
今天来写一篇关于点击小图查看大图的缩放动画的文章,效果图如下所示: 先来讲一下实现的思路:看到这个效果图,想都不用想就知道用属性动画或者补间动画通过缩放、位移、改变透明度来实现。首先点击小图会跳转到另一个Activity B来显示大图。这个Activity是透明的Activity(因为点击大图执行退出动画时,需要看到上一个界面,效果才更佳)。需要传小图的位置、大小、图片地址三个信息给Acti原创 2018-01-31 11:12:31 · 932 阅读 · 0 评论 -
解决SwipeRefreshLayout嵌套ViewPager产生的滑动冲突的问题
解决滑动冲突主要有内部解决法和外部解决法,所以对于这个问题可以重写ViewPager的dispatchTouchEvent(MotionEvent ev)方法或者重写SwipeRefreshLayout的onInterceptTouchEvent(MotionEvent ev)根据逻辑判断事件消费给谁。我最先通过内部解决法重写ViewPager 发现没有效果,代码如下://重写ViewPa原创 2018-01-26 16:03:23 · 611 阅读 · 0 评论 -
Android 6.0动态申请权限
Android 6.0动态申请权限在android 6.0以下,开发者只需要在配置清单中说明,用户安装APP同意APP所申请的所有权限才能进行安装,而在android 6.0以上,开发者不仅要在配置清单中说明,对于一些危险权限还需要代码动态申请。这些危险权限在用户授权后才可以使用,比如调用摄像头、读取通讯录、定位等。原创 2017-10-23 19:47:17 · 441 阅读 · 0 评论