[QuickAF]中使用Volley进行网络连接,使用Gson来解析响应数据。为了更方便地执行REST API网络请求,[QuickAF]对Volley+Gson进行了简单的封装。
more
接口请求与响应设计
继续阅读 »
{% asset_img weather.png %}
在[QuickAF]中使用基于Volley的网络数据连接框架。能够方便地执行REST API网络请求,并与界面进行交互。在本文中通过一个天气查询的综合示例来讲解[QuickAF]中如何进行网络请求。
继续阅读 »
{% asset_img RefreshLayout.png %}
[QuickAF]使用RefreshLayout控件进行下拉刷新和上拉加载,通过在布局中定义app:ptr_content和app:ptr_empty或api中设置内容layout和错误view。
RefreshLayout的特点如下:
- 支持任意Layout的下拉刷新和上拉加载,默认支持VScrollView,RecyclerView, ListView, GridView上拉/下拉,还可以通过registerDetector来支持更多的Layout;
- 支持自定义EmptyView,一个EmptyView包含loading, empty, error三个子
继续阅读 »
简介
首先上个图
{% asset_img preference.png %}
Preference控件的目的在于替换Android自带的Preference,在[QuickAF]中,Preference被设计为控件,可以在layout/Activity中随意使用,不必像自带的Preference,需要配合res/xml/xxx_preference、PreferenceFragment/PreferenceActivity使用。
继续阅读 »
简介
在[QuickAF]框架中,标题栏不使用Android自带的ActionBar或ToolBar,而是使用一个IOS风格的TitleBar来实现。TitleBar的使用非常灵活,主要分为三块区域:
- 左侧区域,一般放置一个返回按钮,父类AfActivity已经默认点击为finish操作
- 中间区域,一般显示页面的标题,如“订单详情”
- 右侧区域,一般放置本页面的相关操作图标或文本按钮
继续阅读 »
目前许多Android App都带有一个底部栏,通过底部栏可以切换Tab,比如微信,QQ都是这种风格。对于像小红点之类的醒目提醒,用得最多的就是BadgeView了,不过,如果底部栏是RadioGroup的话,那么不好意思BadgeView可不支持哦(如果使用BadgeView,RadioGroup就不能愉快地工作了)。那么如何即保留使用RadioGroup又能添加BadgeView的功能呢?请接着阅读本文。
本文阐述的是使用QuickAF的RadioBadgeView来解决RadioButton与BadgeView的冲突。在RadioButton上显示Badge消息提醒,需要将原来的RadioButton替换成RadioBadg
继续阅读 »
Android中实现圆角图片有多种姿势,不知你解锁了几种?
more
方法一:setXfermode法
此种方式就是再new一个相同尺寸的bitmap,然后使用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));先画圆角矩形,再画原始bitmap,然后就得到了一个圆角的bitmap了。
```java
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) {
继续阅读 »
相信大家在做Android开发的时候,一定遇到以下问题:
界面A上有一个按钮B1,点击时,需要变换背景颜色
界面B的按钮B2与界面A的按钮B1外观一样,只是颜色不同
通常我们的解决办法是向UI要按钮的背景图,不同的状态是一张图片。以上为例,我们需要向美工索取4张图片。
按钮B1(常态与点击态),按钮B2(常态与点击态),然后再定义selector drawable xml,如果美工给的不是9.png,我们还要使用nine-patch工具将其转为9.png图片。
大家可以想象一下,如果状态更多,而页面上的按钮又各不相同的话,天啊!那该有多少图片,多少个selector啊,得花多少时间啊!有没有快捷的解决办法呢?答案当然是有!
继续阅读 »
Android倒计时控件,通常在发送验证码时用得最多。其实Android系统提供了一个倒计时控件叫做CountDownTimer,不过这个控件没有与界面控件绑定,在这里,我要讲述的是如何自己写一个倒计时的控件。
源码
首先放上CountDownButton的源码
```java
/**
* CountDownButton used for send phone verify code etc.
*
* @author Jamling
*/
public class CountDownButton extends RoundButton {
private long totalTime = 60 * 1000;/
继续阅读 »
很早的时候就想写这篇文章了,作为BAT中的一员,还真不想吐槽它,免得被人身攻击。有人说,微信支付很简单嘛,官网有例子,网上也有现成的例子,不过谁用谁知道,本人也是在深入了解之后,真心觉得微信支付里的坑太多,BAT的开发们太敷衍了事,结果给不少的其他开发者带来诸多麻烦。我在这里做个稍全一点的介绍,尽量减少其他同学们掉坑里的概率。
继续阅读 »