安卓
qdctop
这个作者很懒,什么都没留下…
展开
-
【安卓网络编程】Android Studio导入Volley
在Android Studio中使用Volley框架,首先要导入Volley到项目中去。 点击主界面左上角File ,点击Project Structure ,在Modules下,点击app,然后点击Dependencies,然后点击右边的那个"+"号。如下图: 这时候选择Library Dependency,出现界面: 在输入框中输入Voll原创 2015-11-05 22:02:28 · 4967 阅读 · 0 评论 -
性能优化过度绘制
调试GPU来查看过度绘制过度绘制对性能会产生不必要的开销,如果能减少不必要的绘制,将有助于性能的提升。以下以在手机上进行 Debug GPU overdraw 举例:在开发者选项里,打开【调试GPU过度绘制】看到整个屏幕有颜色变化就对了+1如何查看这里有四层颜色的指示,颜色的层级表示屏幕上有多少像素过度绘制没有颜色改变:沒有过度绘制 1X 蓝色:过度绘制一次 2X 绿色:过度绘制兩次 3X 粉原创 2016-01-28 20:41:37 · 1231 阅读 · 0 评论 -
[重写开源框架源码]SwipeBackLayout实现全屏滑动
在日常开发中,导入开源框架有时候不能完成项目的需要,没办法,这时候只好去重写它的部分原来,以达到自己想要的需求。目录: 目录 SwipeBackLayout开源框架 在SwipeBackLayoutjava中最后那里增加这部分代码 在ViewDragHeperjava中最后那里这个去修改源码 然后再activity中调用的时候只需要这样SwipeBackLayout开源框架它可以实现app的侧滑原创 2016-03-22 17:09:13 · 1783 阅读 · 1 评论 -
[重写开源框架源码]HorizontalListView的滑动冲突解决
HorizontalListView是可以实现横向滑动ListView,它在github上的项目地址是: https://github.com/MeetMe/Android-HorizontalListView但笔者在使用它的时候,发现它与slidingmenu或者swipebacklayout产生滑动冲突,很不幸,它的源码里没有去做滑动冲突解决的方法。在这里,解决它的滑动冲突非常简单,笔者在它原有原创 2016-03-22 17:18:29 · 2086 阅读 · 1 评论 -
Android常用开源框架分享
1. photoView 图片手势库点击缩放,有过渡动画等 2. stickyListHeaders ListView顶部停靠等原创 2016-02-26 14:33:14 · 874 阅读 · 0 评论 -
[重写开源框架源码]InfiniteViewPager在ScrollView中不能竖直滑动问题解决
笔者在项目中使用到InfiniteViewPager这个开源框架作为广告轮播,确实挺好用的,但却发现了一个问题:InfiniteViewPager在ScrollView中不能竖直滑动。它的开源地址:https://github.com/waylife/InfiniteViewPager于是笔者打开它的源码,找到这个文件InfiniteViewPager.java ,在onInterceptTouch原创 2016-03-22 20:40:42 · 748 阅读 · 0 评论 -
[重写系统控件]ViewPager与SwipeBackLayout的业务需求解决
笔者在登陆页面使用了ViewPager与SwipeBackLayout,但有一个业务需求是:ViewPager在第二页是可以右滑到第一页,当ViewPager在第一页时,才会触发SwipeBackLayout的右滑返回,ViewPager在第一页可以左滑到ViewPager的第二页。参考了ViewPager的源码,做出以下解决办法:继承ViewPager类,重写dispatchTouchEvent方原创 2016-03-23 17:23:55 · 1400 阅读 · 0 评论 -
[Gradle Retrolambda]Android Studio使用lambda表达式
如何使用Gradle Retrolambda Plugin 来为Android Studio 增加lambda表达式。通过以下三个步骤轻易完成。跟着复制粘贴就可以了。原创 2016-03-18 14:12:40 · 1883 阅读 · 0 评论 -
[leakcanary]内存泄露检测
leakcanary是square公司出的android内存泄露框架,相比起MAT工具,它使用起来非常简便,在android studio中导入很方便。它可以很直观通过通知,告诉你内存泄露产生在哪里。导入方法:配置Module:app -> build.gradle文件,添加以下依赖dependencies { debugCompile 'com.squareup.leakcanary:le原创 2016-03-25 14:31:13 · 637 阅读 · 0 评论 -
Retrofit请求字符串
在使用Retrofit来作为网络请求库之后,笔者查阅了网上的有关教程,无外乎都是请求json数据,使用addConverterFactory(GsonConverterFactory.create())来作为转化器,如果业务需求是请求 字符串,而不是json数据格式呢,继续使用这个转换器就会产生错误。好,来到正题,如何使用Retrofit请求一段字符串: ...原创 2016-03-27 16:40:54 · 9252 阅读 · 7 评论 -
[转]Android的23种设计模式
1 单例模式单例模式可以说是最容易理解的模式了,也是应用最广的模式之一,先看看定义吧。定义:确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例。 什么时候需要使用单例模式呢:如果某个类,创建时需要消耗很多资源,即new出这个类的代价很大;或者是这个类占用很多内存,如果创建太多这个类实例会导致内存占用太多。关于单例模式,虽然很简单,无需过多的解释,但是这里还要提个醒,转载 2016-07-03 22:29:26 · 1628 阅读 · 0 评论 -
安卓Android轻松完成支付宝支付教程
到这里你已经可以完成支付宝支付功能,很简单吧。笔者继续研究微信支付...原创 2016-07-06 13:46:57 · 25039 阅读 · 19 评论 -
Slidingmenu与ViewPager广告栏滑动冲突解决分享
之前在公司开发的时候, 在主页部分fragment使用了ViewPager作为广告栏,但项目里又引用了SlidingMenu开源库用作侧滑菜单,于是这里产生了滑动冲突:广告栏不能滑动了,滑动却是侧滑了SlidingMenu。在这里我将我决解办法分享给大家,实现起来也十分简单。如果你不知道滑动事件分发,建议你先看下这个博客里写的,我觉得写得很精髓。 郭霖的博客: [Android事件分发机制完全解析原创 2016-02-05 20:23:24 · 983 阅读 · 2 评论 -
Android Studio中导入依赖库的方法
在Android Studio中导入依赖库的方法,这里以“上拉下拉刷新框架”的Library为例:第一步:点击File->New->Import Module,进入到如下页面:第二步:选择我们需要导入的library,以“上拉下拉刷新框架”为例,即“PullToRefresh”框架。这个框架在github上有很多大神做的很多个版本,也有动画效果的,请自行下载测试:第三步:等待项目重新构建,如果出现如原创 2016-01-10 00:07:52 · 13751 阅读 · 0 评论 -
Fragment从入门到精通之创建一个fragment②
步骤: 1.创建一个layout来作为fragment视图层次。 2.创建一个class继承自Fragment。 3.在class中使用onCreateView方法来联系视图层次。 4.在Acrivity使用XML中的标签 5.或者java代码来添加fragment视图,需要在Activity使用XML中添加framelayout,fragment将会被添加到这布局上。原创 2015-11-15 21:20:17 · 2592 阅读 · 0 评论 -
知乎下拉刷新SwipeRefreshLayout下拉刷新用法类似知乎下拉刷新
知乎下拉刷新SwipeRefreshLayout控件,类似知乎下拉刷新原创 2015-11-08 17:33:19 · 1892 阅读 · 0 评论 -
Volley框架之使用GET或POST将cookie传给服务器
Volley框架使用GET或POST将cookie传给服务器,需要覆盖一个方法:public Map<String, String> getHeaders() throws AuthFailureError 具体方法如下:原创 2015-11-13 22:14:46 · 1039 阅读 · 0 评论 -
Volley使用之对服务传回的中文数据进行字符转码
在用volley得到这个网页的时候,先要进行转码。 需要覆盖一个方法: protected Response<String> parseNetworkResponse(NetworkResponse response)原创 2015-11-13 22:24:47 · 996 阅读 · 0 评论 -
Volley框架之使用GET取得Cookie
在Volley中,我们想要GET网址得到Cookie,需要覆盖一个方法 protected Response<String> parseNetworkResponse(NetworkResponse response)。原创 2015-11-13 22:08:06 · 972 阅读 · 0 评论 -
【Android网络编程】获取网络图片,具有缓存功能
【Android网络编程】获取网络图片,具有缓存功能原创 2015-10-27 20:10:25 · 691 阅读 · 1 评论 -
ListView入门
实现listview的一般步骤 1.在布局文件中添加xml代码 -添加ListView标签 2.在activity中编写java代码 -获取ListView对象 -准备数据源 -配置适配器 -将适配器关联到ListView 使用ArrayAdapter实现文字列表 1.在布局文件中编写代码(xml) -添加ListView标签(main.xml) 2.在activity原创 2015-12-16 11:39:05 · 637 阅读 · 0 评论 -
ListView进阶
ListView的事件监听 onItemClick: Item项点击事件 onItemLongClick: Item项长按事件 使用方法跟Button的点击事件一样,可以继承接口,再实现抽象方法,也可以直接使用匿名内部类的方式,使用其接口里的抽象方法。 listView1.setOnItemClickListener(new AdapterView.OnItemClickLis原创 2015-12-16 11:59:10 · 549 阅读 · 0 评论 -
Fragment从入门到精通之fragment与activity的生命周期①
要学习fragment,需要先从他与activity之间的生命周期开始学起。 我们需要弄明白,fragment的生命周期与activity生命周期之间的关系。下面是他们的关系:原创 2015-11-15 21:17:03 · 688 阅读 · 0 评论 -
ListView高级
ListView的点击事件传递值 之前我们学习到了getView方法和点击事件,那么接下来,会继续学习到,我们在点击一个item行时,启动另外一个Activity,并把该item行的文本(当然也包括图片),传递到那个Activity中去。 类似以下效果: 在自定义Adapter中,有一个方法,叫 public Object getItem(in原创 2015-12-16 12:06:21 · 473 阅读 · 0 评论 -
The following classes could not be found: android.support.v7.internal.app.WindowDecorActionBar
解决办法,有两种:一个是在styles.xml中修改parent;二是在界面xml中去增加toolbar. 出现这个问题是原因是, 在使用默认创建的activity时,用了'com.android.support:appcompat-v7:23.1.1',没有在界面xml中去使用toolbar,于是弹出这个警告,告诉你接下来可以去使用actionbar。原创 2015-11-28 21:11:44 · 2714 阅读 · 0 评论 -
Fragment从入门到精通之Activity中响应Fragment中的事件③
在Activity中响应Fragment中的事件当我们想要在fragment去执行一些代码,但是这个代码我们想要把它放在activity里面去执行。那么activity里这段代码是如何在fragment中去启动的呢? 使用接口的方法,可以为我们去实现这个功能。以下分为几个步骤去到达这个功能。 ① 创建一个interface接口,在里面写上抽象方法 ② 在fragment中,声明这个接口 ③ act原创 2016-01-01 17:12:08 · 3381 阅读 · 2 评论 -
从源码学习自定义View
从源码来理解自定义View以下这些内容都是理解自定义View的基础知识点。首先需要理解ViewGroup的概念,ViewGroup是一个特殊的View,它可以包含其它多个View,这些被包含的View也被称为childView(子View)。一个ViewGroup可以包含多个子View,同时,这个子View也可以是ViewGroup。 例如,LinearLayout是一个ViewGroup,在里面原创 2016-01-26 21:40:39 · 505 阅读 · 0 评论 -
Android Studio导入jar方法
Android Studio导入jar方法第一步:首先在Project类型中选择视图为“Project”:第二步:将你需要导入的架包jar复制到libs文件夹中,这里我以android-async-http为例:第三步:右键点击这个文件“android-async-http-1.4.8.jar”,选择“Add As Library…”。然后等待项目重新构建,即可导入成功。那么接下来就可以使用这个架包原创 2016-01-09 23:32:26 · 744 阅读 · 0 评论