Android
iRuoBin
这个作者很懒,什么都没留下…
展开
-
RecyclerView添加Header的正确方式
问题如何为RecyclerView添加Header如何让Header适配各种LayoutManager在有Header的情况下,我们的分割线该怎么画作为一个懒惰的程序员,如何将这些做到最简便如果为RecyclerView添加Header大家在使用ListView的时候可以很轻松的添加headers, 但是不知道大家发现没有,RecyclerView和各种LayoutManager都没有哪个方法是为...转载 2018-04-09 15:36:46 · 836 阅读 · 0 评论 -
ExpandableListView的首次加载全部展开,并且点击Group不收缩,去掉Group左边的箭头
1、首次加载全部展开:mExpandableListView.setAdapter(mExpandableListViewAdapter); for (int i = 0; i < mDataGroup.size(); i++) { mExpandableListView.expandGroup(i); }提醒:加载前别忘了判断adapter是否为空和有没有Group数据哦原创 2016-08-16 10:56:48 · 7406 阅读 · 1 评论 -
Android listview指定垂直滑动距离
在写自动化代码的时候对于listview的拖动有时候效果不尽人意,例如robotium自带的滚动操作scrollListToLine,最终的核心就是:inst.runOnMainSync(new Runnable(){ public void run(){ view.setSelection(lineToMoveTo); } });那么也就是转载 2016-08-04 11:06:23 · 2525 阅读 · 2 评论 -
获取ListView当前滚动的距离(高度)
原本以为ListView的OnScrollListener中onScroll方法可以得出ListView的滚动高度,12public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int tota转载 2016-08-04 09:44:07 · 1211 阅读 · 0 评论 -
android开发中资源文件和资源ID是如何映射的
有一段时间没有更新博客了。这里贴一篇从stackoverflow整理过来的问答,来冒充一下自己的原创。问题:android里面,资源文件和资源ID之间的映射是如何工作的?问题描述:做Android应用开发的时候,我们知道可以通过 R.id.xxx 来非常方便的访问应用程序的资源。但是任何资源最终要编译成二进制格式的,那么在这种机制下,系统是如何工作的?例如,在layout1转载 2016-08-15 15:26:49 · 4258 阅读 · 0 评论 -
ListView分析和getItemViewType的用法
ListView 和 Adapter 的基础工作原理:ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。一个新的视图被返回并显示如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?NO!这不可能!实际上Android为你缓存了视图。Android中有个叫做Recycler的构件,下图是他的工作原转载 2016-08-15 15:08:14 · 1938 阅读 · 0 评论 -
用文字替换小图标(TextView替换ImageView)
原理很简单,就是利用了字体文件: Typeface iconfont = Typeface.createFromAsset(getAssets(), "iconfont/iconfont.ttf"); TextView textview = (TextView)findViewById(R.id.like); textview.setTypeface(iconfont); text转载 2016-07-19 15:40:19 · 924 阅读 · 0 评论 -
为什么图片加载我首先Glide
图片加载框架用了不少,从afinal框架的afinalBitmap,Xutils的BitmapUtils,老牌框架universalImageLoader,著名开源组织square的picasso,google推荐的glide到FaceBook推出的fresco。这些我前前后后都体验过,那么面对这么多的框架,该如何选择呢?下面简单分析下我的看法。afinal和Xuils在github上作者转载 2016-07-18 11:25:10 · 499 阅读 · 0 评论 -
Android中的隐藏API和Internal包的使用之获取应用电量排行
今天老大安排一个任务叫我获取手机中应用耗电排行(时间是前天晚上7点到第二天早上10点),所以在网上各种搜索,没想到这种资料还是很多的,发现了一个主要的类:PowerProfile,但是可以的是,这个类没有曝光给我们开发者,所以我们不能调用它那怎么办呀?,还是有办法的,这个类是藏在:com.android.internal.os.PowerProfilecom.android.int转载 2016-07-06 14:56:57 · 461 阅读 · 0 评论 -
ListView的精确定位 和 自下而上展示的ListView
在android的开发中,经常会遇到需要主动去设定某条ListItem的位置的需求。设置位置的函数有ListView.setSelection(int position) ListView.setSelectionFromTop(int position, int y);其中position指的是指定的item的在ListView中的索引,注意如果有Header存在的情转载 2016-08-04 14:23:29 · 638 阅读 · 0 评论 -
Android EditText不弹出软键盘
方法一: 在AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为adjustUnspecified|stateHidden 例如:<activity android:name=".Main" android:label="@string/app_name"转载 2016-08-04 14:33:53 · 4096 阅读 · 0 评论 -
RecyclerView 监听滚动到底部
据个人尝试 以下这种方案能准确监听到是否滚动到底部,可以做上拉加载更多protected boolean isSlideToBottom(RecyclerView recyclerView) { if (recyclerView == null) return false; if (recyclerView.computeVerticalScrollExtent() + r...转载 2018-04-09 11:35:56 · 2921 阅读 · 1 评论 -
Fragment 生命周期图
转载 2017-12-27 15:14:16 · 526 阅读 · 0 评论 -
Android 动图 WebP Gif 的 播放 和 暂停
先说明一下:目前 支持 webp 动图 的 三方图片库,只有Fresco,想控制 动图 播放 和 暂停 的 也只有 Fresco (声明:博主并不是 Fresco 的 铁粉,其他的三方库也都用过,只不过本文标题的功能 目前只有 Fresco 能简单实现)先看一下效果:Gradle添加引用:compile 'com.facebook.fresco:fresco:1.3.0'compile 'com原创 2017-07-17 17:52:53 · 7823 阅读 · 0 评论 -
Android 新一代编译 toolchain Jack & Jill 简介
2016 年 3 月 10 日, Google 向外界发布了 Android N 的预览版,并宣布了 Android N 的 Roadmap,Android N 的最终版源代码将于今年 8 或 9 月份释出到 AOSP 项目。在众多的 Android N 新特性中,有一项新工具链的出现与 Android 生态圈的所有开发者息息相关,即 Jack & Jill 编译器的引入。在依转载 2017-01-03 17:26:11 · 725 阅读 · 1 评论 -
Android 一些新特性
1.RTL(左右翻转的界面风格 支持 Android 4.2(API 17) 和 更新的版本)适配RTL(从右到左) 只要把布局 xml 里面的所有 Left 属性改为 Start,Right 属性改为 End 就好了例如:marginLeft 改为 marginStart,marginRight 改为 marginEnd,padding,gravity 等同理2.高度和阴原创 2016-09-20 15:25:06 · 405 阅读 · 0 评论 -
DrawerLayout背景设置的问题,去除阴影
做项目的时候遇到一个问题,就是当DrawerLayout滑动出来的时候,默认是会给侧边栏下面部分的界面蒙上一层阴影,而我们这个app侧边栏颜色和阴影颜色实在是太相近了,所以就需要去除阴影,然后翻遍baidu找不到,只能fan qiang 去谷歌咯。最后总算找到了方法,给DrawerLayout设置setScrimColor这个方法,给它加上自己想要的颜色就好了,透明的使用drawer.setS转载 2016-08-11 16:24:58 · 9660 阅读 · 3 评论 -
DrawerLayout禁用侧边滑动
使用DrawerLayout的时候有时会出现侧边栏只能滑出一小部分,然后在手指抬起之后侧边栏并没有弹出来的情况,我不清楚这是否是一个BUG,但是个人感觉有些影响体验,索性直接将侧边滑动给禁用掉。DrawerLayout的侧边滑动可以通过设置锁定模式来禁用 mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CL转载 2016-08-11 14:34:37 · 7072 阅读 · 0 评论 -
Android禁止ViewPager的左右滑动
怎样禁止ViewPager左右滑动呢?大致就是重写ViewPager,覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么ViewPager就不会消耗掉手指滑动的事件了,转而传递给上层View去处理或转载 2016-08-11 09:52:44 · 942 阅读 · 0 评论 -
android怎样调用@hide和internal API
Android有两种类型的API是不能经由SDK访问的。第一种是位于com.android.internal包中的API。我将称之为internal API。第二种API类型是一系列被标记为@hide属性的类和方法。从严格意义上来讲,这不是一个单一的API,而是一组小的被隐藏的API,但我仍将其假设为一种API,并称之为hidden API。Hidden API 例子你可以转载 2016-07-05 14:52:15 · 882 阅读 · 0 评论 -
纠正对Fragment Transaction BackStack的误解
目前在开发APP时,Fragment已经被开发者广泛使用,但Fragment的BackStack却被很多开发者误解。所以这篇博客就讨论下Fragment的BackStack及一些相关的常用接口。首先需要明确的是,FragmentActivity的FragmentManager是处理Fragment Transaction的而不是处理Fragment。BackStack内部的一个Transactio转载 2016-07-14 11:23:54 · 444 阅读 · 0 评论 -
Android使用Glide加载Gif.解决Glide加载Gif非常慢问题
在Glide文档中找了半天没发现加载Gif的方式.然后通过基本的用法去加载:Glide.with(MainActivity.this).load(url).asGif().into(imageView); 发现网络也没有获取,翻了一连接才找到:https://groups.google.com/forum/#!msg/glidelibrary/fZnIK2IW7cQ/lnBWNMsk转载 2016-07-13 14:34:44 · 1614 阅读 · 0 评论 -
Android屏幕适配全攻略(最权威的官方适配指导)
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获!Android屏幕适配出转载 2016-02-23 09:39:15 · 612 阅读 · 1 评论 -
自定义Android中EditText中的Hint文本的大小
今天同事在工作中碰到一个问题, 就是EditText中的文字在设定大小后, Hint文本由于太长导致在EditText中无法完整的显示, 所以问有没有单独设置Hint文本大小的选项. 在网上看了一下都没有这方面的介绍. 于是我看了下TextView的源码(EditText继承自TextView), 发现了一些端倪... 今天同事在工作中碰到一个问题, 就是转载 2016-02-22 20:51:27 · 515 阅读 · 0 评论 -
Android中使EditText失去焦点,edittext禁止弹出键盘
在我们的应用中,有时候一进入一个页面, EditText默认就会自动获取焦点。弹出输入法框,用户体验很不好那么如何取消这个默认行为呢?第一种方法:.在网上找了好久,有点监听软键盘事件的方法,有调用 clearFouse()方法,但是测试了都不行!在对应的 xml中也找不到相应的属性可以关闭这个默认行为。后来研究了一下,在其父控件下,添加如下的属性,就可以完美解决:转载 2016-02-22 20:25:16 · 364 阅读 · 0 评论 -
moveTaskToBack退后台
方法:public boolean moveTaskToBack(boolean nonRoot)activity里有这个方法,参数说明如下:nonRoot=false→ 仅当activity为task根(即首个activity例如启动activity之类的)时才生效nonRoot=true→ 忽略上面的限制这个方法不会改变task中的activity中的顺序,效果转载 2016-02-22 13:41:55 · 448 阅读 · 0 评论 -
Android 软键盘详解
软键盘显示的原理软键盘的本质是什么?软键盘其实是一个Dialog!InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。转载 2016-03-17 20:07:36 · 739 阅读 · 0 评论 -
Android软键盘弹出引起的各种不适终极解决方案
很多写登录界面的开发者都会遇到一个问题:那就是在登录界面时,当你点击输入框时,下边的按钮有时会被输入框挡住,这个不利于用户的体验,所以很多人希望软键盘弹出时,也能把按钮挤上去。很多开发者想要监听键盘的状态,这无疑是一个很麻烦的做法。 我们可以在AndroidManifest.xml的Activity设置属性:android:windowSoftInputMode = "adju转载 2016-03-17 20:05:07 · 716 阅读 · 0 评论 -
Application.mk中APP_ABI
在使用NDK编译过程中发现针对不同的CPU架构,部分支持编译调试,部分不支持调试,故记录下来,以防忘记在Application.mk文件中有个预定义命令参数APP_ABI,是指明编译与调试的CPU架构。目前Android系统支持以下七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年),MIPS(从2012年),ARMv8,MIPS64和x86_转载 2016-03-15 20:21:28 · 18241 阅读 · 0 评论 -
android中延迟执行某个任务
android中延迟执行某个任务android App开发在某些情况下需要有延时功能,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这就好比是一个预加载,但是这个预加载可能瞬间就完成了,撑不到3秒钟,这是就要求你做延时处理。下面是三种方法:一、线程[html] view plaincopy1. new Thread(转载 2015-12-10 10:47:05 · 322 阅读 · 0 评论 -
Android 通知栏图标 变形解决
做一个APP,需要用到通知的功能,但是通知栏上的icon在显示的时候会出现问题。具体的问题就是图标太大,只能显示其中的一部分:这是程序的icon,ic_launcher.png:我们想让他正确的显示为这样:但是如果图片的尺寸没有调整好,就会显示成这样:滑动出的内容为:很不好看,对吧。可以看到,通知只显示出来了中间的转载 2016-04-11 10:39:51 · 3021 阅读 · 0 评论 -
细说Android事件传递机制(dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent)
本文背景:前些天用到了之前写的自定义图片文字复合控件,在给他设置监听时遇到了麻烦。虽然最后解决了问题,但发现在不重写LinearLayout的onInterceptTouchEvent时,子ImageView、子TextView、父Linearlayout三者不同的属性配置(Android:clickable android:focuseable)会造成自定义控件onClick监听失败、或成功转载 2016-05-16 14:14:40 · 634 阅读 · 0 评论 -
自己生成网络后台接口并利用charles模拟Http请求和响应
最新项目组服务端的童鞋们太不给力了,接口一直没有出来,为了方便开发。服务器的童鞋们定义好了http接口以及返回的json结构。然后客户端就可以利用json结构,模拟数据,然后顺利开发,最后等服务器接口完成的时候,再次做一下联合调试。这样的方法,有专业的名字mock。下面介绍下怎样利用mock http响应。比如有个http接口http://xx.oo.com/api转载 2016-07-22 14:51:14 · 3972 阅读 · 0 评论 -
Android ScrollView滚动 + ListView无滚动条加载全部内容
Android实现 ScrollView+ListView无滚动条滚动,即ListView的数据会全部显示完,但Listview无滚动条。核心代码如下:1. NoScrollListView.Java /*** * 自定义ListView子类,继承ListView * @author Administrator * */public class NoScrol转载 2016-06-28 11:49:41 · 636 阅读 · 0 评论 -
Android App 免杀教程
如何让你的app一直在运行状态呢?默认情况下,不做任何跨进程部署配置的话,每个android app运行在单独一个虚拟机上,每个虚拟机对应一个进程。当app被系统回收或者是被用户主动杀掉(通过app管理软件),进程就彻底退出了。在有些场景,app所在的进程退出了,我们希望还能做一些操作。比如,app被卸载后(卸载会先退出运行),我们希望跳转浏览器做一些卸载原转载 2016-06-28 11:37:49 · 18840 阅读 · 3 评论 -
AndroidManifest合并原理
Android Studio工程通常包含多个AndroidManifest文件,最终构建成APK时,会合并成一个AndroidManifest文件。但是可能很多人应该都不知道是怎么合并的,本文将为大家揭开神秘面纱。1. 合并冲突规则(merge conflict rules)合并冲突,是指多个Manifest文件中含有同一属性但值不同时,默认合并规则解决不了从而导致的冲突。转载 2016-05-19 15:10:03 · 4033 阅读 · 0 评论 -
Android 使用android-support-multidex解决Dex超出方法数65536的限制问题
随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误:[java] view plain copy UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentExcepti转载 2016-05-19 14:13:48 · 444 阅读 · 0 评论 -
Android中allowBackup属性的含义和危险性实例讲解
一、前言今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但是没想到这个属性会直接导致隐私数据的丢失。下面就来看一下这个属性的影响到底有多大。他的作用是什么?二、Android中的allowBackup属性1、allowBackup安全风转载 2016-05-19 12:04:58 · 41824 阅读 · 8 评论 -
Android中Textview加横线的属性
textView.getPaint().setAntiAlias(true); // 抗锯齿textview.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); // 中划线textview.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Pain原创 2016-05-31 17:30:50 · 2871 阅读 · 0 评论 -
android屏幕适配详解
官方地址:http://developer.android.com/guide/practices/screens_support.html 一、关于布局适配建议1、不要使用绝对布局2、尽量使用match_parent 而不是fill_parent 。3、能够使用权重的地方尽量使用权重(android:layout_weight)4、如果是纯色背景,转载 2016-05-16 15:51:05 · 483 阅读 · 0 评论