Android
文章平均质量分 73
qiang_xi
座右铭:人生最可悲的事情,莫过于胸怀大志,却又虚度光阴
展开
-
【重磅】QUploadPlugin,让上传变得简单
QUploadPluginQUploadPlugin 是一个gradle插件,适用于所有以gradle管理的项目中,如Android项目、Java web项目等。QUploadPlugin包含的功能上传指定文件到七牛云,文件可以为任意格式,如图片、json文件、apk文件、war文件、jar文件等上传指定文件到蒲公英,由于蒲公英是为移动端的apk或ipa做分发的,貌似仅支持ap...原创 2018-06-30 21:28:12 · 874 阅读 · 0 评论 -
类似QQ的窗口抖动效果
其实很简单,只需要一个动画即可 /** * 晃动动画 * @param counts 规定时间内晃动多少下 * @return */ public static Animation shakeAnimation(int counts){ Animation translateAnimation = new Translate原创 2016-02-23 14:48:48 · 1138 阅读 · 0 评论 -
有了Font Awesome,再也不担心没图标用了----Font Awesome字体图标在android中的使用
介绍Font Awesome如何在android中使用之前,先贴出一个链接:如何在安卓app中使用FontAwesome图标这篇文章是泡网上的一篇译文,可以先看看这篇,了解个大概我这里把泡网上的关于android使用Font Awesome的具体方法详细说一下:直奔主题吧,android中使用Font Awesome其实很简单,我们知道比如一个TextView或者Butto原创 2016-02-20 17:44:53 · 3069 阅读 · 0 评论 -
使用Xutils框架优化ListView
0原创 2016-02-17 22:28:47 · 2423 阅读 · 0 评论 -
利用Xutils框架进行断点续传下载
前面有两篇博文主要介绍了如何利用volley获取所有cookie信息和自定义一个request,地址如下:Volley 添加Cookie和获取服务器返回的一条或多条Cookie继承Volley的Request,创造自己的Request,实现cookie回调和指定返回数据类型回调我们都知道volley是google官方推出的一款网络请求框架,它适合高并发但是数据量不大的网络请原创 2016-02-16 17:06:46 · 9247 阅读 · 8 评论 -
eclipse自定义右键菜单选项
用eclipse开发android时,集成好环境之后,发现右键没有新建android项目选项,也没有新建布局文件选项等,反正关于android的选项都没有,如果用到的话还得从"other"里去找,很麻烦,如果能把这些功能集成到右键菜单就好了....也很简单以目前最新版的eclipse为例,这里为4.5.1版本,Windows->Perspective->Customize Pers原创 2016-02-16 10:16:59 · 13133 阅读 · 2 评论 -
继承Volley的Request<T>,创造自己的Request,实现cookie回调和指定返回数据类型回调
本文也是承接上一篇文章,上一篇文章讲的是如何用volley获取服务器返回的所有cookie信息,地址如下http://blog.csdn.net/qiang_xi/article/details/50608653上一篇中我们采用修改源码的方式让volley可以拿到所有的cookie信息,虽然拿到了所有的cookie信息,但是我们用的时候是重写parseNetWorkResponse方法,在原创 2016-01-30 21:27:25 · 1296 阅读 · 0 评论 -
针对不同分辨率设置的布局没有效果的解决办法
屏幕适配时,当采用xml匹配方式,发现即使针对不同分辨率做了不同的布局,对应分辨率的手机的显示依然没有任何的效果,查找相关资料后发现必须要在androidmainfest中进行如下代码的配置:android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:x原创 2016-02-13 21:17:04 · 1567 阅读 · 0 评论 -
Volley 添加Cookie和获取服务器返回的一条或多条Cookie
之前项目里请求网络的代码都是采用原生的语句,如HttpURLConnection或者HttpClient,这种方式请求灵活度高,但是访问网络的速度慢,特别是在网络不好的情况下情况更糟,而Volley是google官方极力推崇的一款网络请求框架,具体好处自不用多说.且因为它的继承性,在灵活度上也比原生的请求代码好一些,我们可以继承父类Request来实现我们自己的xxxRequest.当采用原创 2016-01-29 20:48:25 · 4732 阅读 · 4 评论 -
超详细图文讲解android studio导入第三方类库的方法
android studio如何导入jar包和.so文件在我之前的博客中都已经详细说明过,这是链接:android studio如何导入jar包:http://blog.csdn.net/qiang_xi/article/details/47282217 第6点有说明android studio如何导入.so文件:http://blog.csdn.net/qiang_xi/articl原创 2015-12-06 12:08:31 · 11470 阅读 · 3 评论 -
android minSdkVersion maxSdkVersion targetSdkVersion build target
分析一下minSdkVersion maxSdkVersion targetSdkVersion build target,大部分是我自己的理解,一部分是网上摘抄minSdkVersion:软件最低可运行在哪个版本的手机上maxSdkVersion:软件最高可运行在哪个版本的手机上,android 2.0.1以后该属性已无用targetSdkVersion:(1)软件最原创 2016-01-22 11:17:36 · 1190 阅读 · 0 评论 -
androidd时光轴效果实现
一个好的应用肯定有一个好看的界面,给自己界面增加各种各样的特效或者独树一帜的外观,即使功能差不多,但你的应用肯定更受欢迎,给应用加特效一般会写很多xml文件作为控件的背景,这种方式很容易实现,也很简单,也是大多数开发人员的首选,不过我认为更加酷炫的界面还是自己定义的比较好,比如继承view或者viewGroup,自己创造一个独树一帜的控件或者界面效果出来,比如像QQ的侧滑菜单效果等,而自定义控原创 2015-11-30 18:07:23 · 2232 阅读 · 0 评论 -
利用Dom,Sax,Pull三种方式解析xml文件
最近找工作,看到许多公司的要求里都写了要会xml解析,所以就把之前的xml解析知识又重新回顾了一下,写个小例子.解析xml文件常用的几种方式也就dom,sax,pull了,并且面试官经常问到的也是这三种解析方式之间的优缺点以及使用情况,先说一下这三种方式的优缺点和使用情况吧:其实dom,sax,pull之间的优缺点网上有很多,讲的搞不好比我的还要深入和贴切,不过还是要说一下,毕竟自己以后还原创 2015-11-29 20:15:55 · 3993 阅读 · 0 评论 -
Android使用EventBus框架优化代码逻辑
又叫事件总线(或消息总线),网上关于该框架的使用说明很多很多,我也是照着网上的一些教程学会使用的,在使用的过程中,突然发现以前很想实现但没能实现的代码逻辑终于可以实现了,说代码逻辑之前还是先说下EventBus的基本使用方法吧. 1,EventBus的使用方法: 如果是Android Studio 的开发者,直接在dependence里搜索EventBus,然后添加依赖即可,网上教程有很原创 2016-06-07 10:45:44 · 965 阅读 · 0 评论 -
Android Studio如何取消与SVN的关联
在使用SVN过程中可能有时因为一些原因,不想再使用SVN了,我们想取消与SVN的关联,让android项目恢复到原始状态,不想有哪些花花绿绿的颜色了,怎么办呢,操作起来很简单把Android Studio切换到Project模式,有个.idea文件夹,在该文件夹下找到vcs.xml文件,打开该文件,把里面的内容替换成如下代码即可. 原理也很简单,如果之前关联了S原创 2016-03-03 21:02:49 · 21294 阅读 · 10 评论 -
再说Runnable、Callable、Future、线程池
Runnable接口Runnable接口是关于线程的开发中使用最多的接口,在Handler中,我们可以post一个Runnable任务;我们经常使用的Thread也是Runnable接口的实现类。 Runnable接口的run方法无返回值,也无异常抛出,也就是说我们在run方法中的任务一旦执行,我们无法获知任务是否执行完毕以及执行的结果。源码public interface Runnable {原创 2017-09-27 16:26:05 · 1465 阅读 · 0 评论 -
DataBinding使用教程(四):BaseObservable与双向绑定
引言这篇文章主要讲两个知识点:双向绑定:主要是把上一篇文章中的一些注解通过具体实例再详细说一下,通过这些实例,尽量把双向绑定说的清楚一些。BaseObservable:包括与BaseObservable相关的东西。比如:@Bindable注解,响应式包装类等;什么叫双向绑定举个例子简单说一下:在TextView中,我们通过dataBinding把实体中的数据放到TextView中展示,这是从实原创 2017-08-25 20:55:03 · 12053 阅读 · 4 评论 -
自定义View系列(6)--RatingBarView
写在前面这个控件是一个组合控件,继承于LinearLayout,实现的效果类似于Android中的RatingBar,但是比RatingBar更加灵活,使用起来也更加方便.现在已经上传到github,地址:RatingBarView,同时也上传到jCenter,在Android Studio中使用RatingBarView只需要以如下方式引入即可: compile 'com.qiangxi.ra原创 2017-06-11 14:53:14 · 795 阅读 · 0 评论 -
Android沉浸式状态栏
Android 状态栏操作View类中设置UI元素效果的各个常量说明以下各个常量全部都是用来作为setSystemUiVisibility(int)方法的参数使用的.View.SYSTEM_UI_FLAG_VISIBLE(在API 14时被添加进来,单独设置有效)默认值,请求状态栏可见View.SYSTEM_UI_FLAG_LOW_PROFILE(在API 14时被添加进来,单独设置有效)请求用户界原创 2017-04-05 14:50:33 · 1339 阅读 · 0 评论 -
Retrofit各个注解的含义及作用
写在前面本篇文章基于retrofit-2.1进行分析.1. 各个注解的含义及使用1.1 Body注解:作用于方法的参数使用该注解定义的参数不可为null当你发送一个post或put请求,但是又不想作为请求参数或表单的方式发送请求时,使用该注解定义的参数可以直接传入一个实体类,retrofit会通过convert把该实体序列化并将序列化后的结果直接作为请求体发送出去.示例: //实体原创 2016-12-31 23:57:56 · 33774 阅读 · 5 评论 -
Error:Could not find com.github.dcendents:android-maven-plugin:1.3解决方式
今天把一个库上传到jcenter时,按照网上的教程一步一步操作,中间遇到了一些错误,都在网上找到了答案,但是在最后一步时,遇到了以下这个错误:Error:Could not find com.github.dcendents:android-maven-plugin:1.3.Searched in the following locations:file:/F:/Android_Studi原创 2016-10-10 14:58:51 · 13587 阅读 · 12 评论 -
Android检查更新库CheckUpdateLibrary使用教程
检查更新并下载更新可以说是一个app必备的功能了.既然是必备功能,往往需要考虑很多东西,如下:1,更新方式:一个软件有更新了,如果是上线了新的功能或修复了某些bug,或者是服务端的接口变了等,需要强制用户更新软件,不然就退出应用,而如果只是进行性能的优化或者界面变化但是数据不变的更新,往往不需要强制更新,所以这就产生两种更新需求:强制更新与非强制更新.2,后台下载:强制更新可能原创 2016-10-15 18:18:34 · 6753 阅读 · 8 评论 -
自定义view系列(5)--99.99%实现QQ侧滑删除效果
首先声明本文是基于GitHub上"baoyongzhang"的SwipeMenuListView修改而来,该项目地址:https://github.com/baoyongzhang/SwipeMenuListView可以说这个侧滑删除效果是我见过效果最好且比较灵活的项目,没有之一!!!但是在使用它之前需要给大家提两点注意事项:1,该项目支持Gradle dependence,但是目原创 2016-09-07 16:04:30 · 4846 阅读 · 6 评论 -
android design包下的Snackbar第一个参数使用技巧
能看到这篇文章的,我想大部分都已经对Snackbar的基本用法很熟悉了.对于Snackbar.make()方法中的第一个参数View ,该view必须能找到父布局才能用,也就是说,如果我们使用new View(this)的方法来实例化一个view放进去,虽然类型一样,但是运行时会直接报错,因为这个view找不到父view.在一般的使用过程中下,我们都是在view的onClick事件中弹出S原创 2016-09-06 15:17:43 · 6622 阅读 · 7 评论 -
自定义view系列(4)--判断滑动方向的ListView
使用ListView时.现在一些流行的应用会根据ListView实时的滑动方向来显示或隐藏一些布局,比如知乎,掘金等应用.判断ListView的滑动方向其实不难,只需要在它的OnScrollListener中进行相应的操作即可,网上也有很多教程,但是这样做很麻烦,因为有些ListView的Item很高,当ListView的多次滑动距离没有超过一个Item的高度时,判断是向上滑动还是向下滑动会有原创 2016-09-04 12:17:06 · 2315 阅读 · 0 评论 -
ListView与SwipeRefreshLayout滑动冲突解决方式
一, ListView与SwipeRefreshLayout滑动冲突解决方式原文出处:http://blog.csdn.net/lijinhua7602/article/details/41114397方法如下:listView.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScr转载 2016-09-02 18:50:00 · 2384 阅读 · 0 评论 -
类似支付宝的view点击效果透明度变化
先上两个截图,如下:支付宝: QQ:如上两图用红色框框住的部分,当手纸按压时,图片透明度发生变化,但是背景颜色没有变化,这和我们平常所用的控件按压效果不太一样,但是要做到这种效果也不难,我们可以让美工做两套图片出来,然后设置正常状态和按压状态时的图片即可, 但是这样会造成应用的包体积很大,毕竟有很多地方都需要这种效果,不是首选之法。第二种方式是利用ImageView原创 2016-08-29 16:10:29 · 1923 阅读 · 0 评论 -
使用Socket进行通信
例子很简单,主要模拟服务器端和客户端的通信.首先建立一个服务器端程序,该程序在计算机上运行,可以用文本编辑器编辑然后在dos界面通过指令运行,也可以用eclipse建立Java项目运行(注意:该程序是Java程序,不是Android程序)服务器端代码:import java.io.OutputStream;import java.net.ServerSocket;import ja原创 2015-03-31 15:42:33 · 930 阅读 · 0 评论 -
给android studio安装新字体,如mac系统的monaco字体
程序猿最少不了的就是敲代码,那么一款好看的字体能让程序员敲起代码来更舒心,甚至能带来更好的灵感和思路,现在android开发工具已经基本上从eclipse过渡到android studio了,如果我们想要给android studio更换字体,其实很简单,网上也有很多例子,但是我们如何给android studio 安装新的字体呢?因为适合编程的字体也就那么几种好看(个人看法),如果用腻了,想换新原创 2015-11-22 12:05:24 · 11544 阅读 · 0 评论 -
android API Demos 路径
在android模拟器中有一个google官方给的 API Demos应用,这个应用里面有很多很有用的demo,我感觉把这些demo全部搞会,android开发的水平至少会上一个等级.那么这个应用的源码在哪里呢,当我们下载sdk的时候,每个版本的api下面都有一个samples文件,这里面装的就是一些api的使用demo,,而API Demos应用的源码也在这个文件夹里,下面把路径贴出来供大家学习原创 2015-09-08 14:13:44 · 6955 阅读 · 4 评论 -
android开发必备的一些网址
把自己常用的一些网址记录一下,方便自己和他人http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/ 安卓源代码在线查阅,(不用翻墙也可以查看)http://www.javaapk.com/ android应用,游戏,demo的源码下载网站http://原创 2015-09-05 19:43:18 · 735 阅读 · 0 评论 -
双击退出程序
//再按一次退出程序,timeSpace = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (System.currentTimeMillis() - timeSpace > 2000) { timeSpace = System.currentT原创 2015-08-09 11:43:39 · 673 阅读 · 0 评论 -
超级安卓模拟器genymotion
上一遍博文结尾说到genymotion的N多好处,那么怎么安装和使用genymotion呢,下面教大家如何安装genymotion1,首先推荐从官网上下载https://www.genymotion.com,下载集成了genymotion和vbox的那个,,有些人可能访问不了这个网站,这里还有个中文网站http://www.genymotion.net/,一样可以下载,这里要说一下,在官网下载原创 2015-04-08 21:28:46 · 938 阅读 · 0 评论 -
想双击退出程序,却回到上一个activity的解决办法
我之前有两个博客介绍了应用的启动画面和双击退出程序的小demo,如果结合在一起看的话,即一个应用启动的时候,先加载一个启动的画面,几秒之后跳转到主界面,然后利用双击退出程序的代码实现退出程序,但是在实际操作中,当在主界面双击退出时,却并没有退出程序,而是返回到了上一个界面,即加载启动画面的界面,android的这种一层一层后退的方式和数据结构中的栈相似,换句话说android,就是利用栈的工作原理原创 2015-09-04 11:22:43 · 2206 阅读 · 0 评论 -
用intent传值时遇到的一个小问题
今天用inent传值时,在传值界面跟踪打印了要传的值,打印结果正确,但在接收数据界面跟踪打印传进来的值,却打印出来空值,研究半天后来发现是因为接收数据时用的接收数据的方法错了,我传值的时候用的是intent.putExtra(),但接收数据时用的是intent.getExtras();就是因为这样才造成数据接收不到,自己总结一下: * 如果传值进来的那个页面用的是intent.putExt原创 2015-08-16 12:08:50 · 4251 阅读 · 0 评论 -
利用Bmob公司的云服务实现获取短信验证码登录操作
/** * 目标要求:输入手机号,点击获取验证码,用户把验证码填写完毕,点击登录 * 细节: * 1、输入手机号时,判断是不是11位手机号,不是11位,当点击获取 * 验证码按钮时则提示-->请输入11位有效手机号码,是11位,则进行点击获取验 * 证码操作,并提示验证码已发送,请尽快使用 * 2、当进行获取验证码操作后,获取验证码按钮变成灰色,且不可点击,并进行 * 倒计时操作,倒原创 2015-08-15 22:24:43 · 8143 阅读 · 6 评论 -
Android Studio用法之---快捷键
Alt+Enter 不仅能导入包,还能在有错误时提示哪里错了并给出解决方法,比eclipse里的导包快捷键有用多了Alt+Shift+J 删除空行Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+F 查找文本Ctrl+Shift+Space 自动补全代码(自我感觉并没有什么卵用)Ctrl原创 2015-07-07 13:05:28 · 1115 阅读 · 0 评论 -
通知--Notification的功能与用法
Notification是显示在手机状态栏的通知,手机状态栏一般显示了手机的网络状态,电池状态,时间等信息,Notification所代表的是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。NotificationManager是一个重要的系统服务,该API位于应用程序框架层,应用程序可通过NotificationManager向系统发原创 2015-05-26 21:06:56 · 1729 阅读 · 0 评论 -
利用SharedPreference实现数据存储
这个例子功能还算全面,实现了类似于qq登陆的界面,一开始输入账号和密码,然后点击"保存密码",则保存账号和密码信息,当下一次再登陆时,会把账号和密码回显,这里面我自己又加了一个"显示密码"的选项,用于用户检查是否输对了密码.这里面的关键点就是账号密码的存储与回显,我用了两种方式进行存储与回显,一种方式就是利用File,另一种就是利用SharedPreference,先看第一种方式:原创 2015-04-28 22:57:17 · 1201 阅读 · 0 评论 -
利用webview访问浏览网页
WebView是一个控件,但它的父类却不是widget,而是webkit,这个例子代码非常少,但是访问浏览网页的功能也实现了,废话不多说,先上代码:MainActivity.java代码:import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;i原创 2015-04-20 22:13:44 · 1248 阅读 · 0 评论