首页
学习
活动
专区
工具
TVP
发布

Android开发指南

专栏作者
217
文章
215389
阅读量
47
订阅数
Android刮刮卡自定义控件
网上的都是自己绘制的或者图片,我的需求是可以随意的自定义底部和顶部的布局。所以自己重写一个,原理就是直接继承 View 来实现一个刮层,让这个刮层和图片以及文字不产生任何依赖,再结合 FrameLay
六月的雨
2018-05-14
1.3K0
Android Training Note
google为了让广大Android开发者能够高效地创建优质的app,专门针对开发者提供了Training板块,这个板块的学习资料是最一手的,来自google android工程师之手的。这个资料是每一个Android开发者都应该学习的手册,并且它是不断更新的。链接:  https://developer.android.com/training/index.html 中文版: http://hukai.me/android-training-course-in-chinese/index.html 版
六月的雨
2018-05-14
6770
用最简单的例子说明设计模式(一)之单例模式、工厂模式、装饰模式、外观模式
设计模式 所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。  在GoF的《Design Patterns: Elements of Reusable Object-Oriented Software》中给出了三类(创建型[对类的实例化过程的抽象化]、结构型[描述如何将
六月的雨
2018-05-14
9900
Android开发艺术探究Note
第一章:Activity的生命周期和启动模式 生命周期 onPause表示activity正在停止,onPaus必须先执行完(栈顶的activity),新的activity的onResume才会执行。onStop表示activity即将停止(透明不会执行),可以做些稍微重量级的回收工作。onPause和 onStop不能处理太耗时的操作,因为onPause必须执行完成以后新的activity才能resume onstart和onstop是从activity是否可见这个角度来回调的,而onresume和onp
六月的雨
2018-05-14
5840
2.下拉刷新、二维码
下拉刷新 pulltorefresh 支持listview,webview,gridview,expandableListview众多控件 1,lv_list = refreshListView.getRefreshableView();//需要拿到refreshListView这个组合控件里面的具体的listview,才可以设置adapter 2.refreshListView.setRefreshing();//开始加载数据的时候.应该显示.正在刷新 3.refreshListView.onR
六月的雨
2018-05-14
8760
Android回调接口的写法
方法一: 定义一个接口,里面写想要对外提供的方法,在逻辑层方法的参数里传递进去,让在需要的时候调接口里的方法。 实例一: public class SmsUtils { public interface BackUpCallBack{ /** * 短信调用前调用的方法 */ public void beforeSmsBackup(int total); /** * 短信备份中调用的方法 * @param progress 当前备份的进度。 */ public
六月的雨
2018-05-14
4.7K0
6.下拉刷新
下拉刷新------- 1.addHeaderView必须在setAdapter之前调用 2.将paddingTop设置一个headerView高度的负值去隐藏它 getHeight()和getMeasuredHeight()的区别: getMeasuredHeight():获取测量完的高度,只要在onMeasure方法执行完,就可以用                     它获取到宽高,在自定义控件内部多使用这个 使用view.measure(0,0)方法可以主动通知系统去测量,然后就 可
六月的雨
2018-05-14
1.6K0
7.侧滑、ViewDragHelper、属性动画
实现这样的效果: ## 侧滑面板(对ViewGroup的自定义) * 应用场景: 扩展主面板的功能 * 功能实现: > 1. ViewDragHelper: Google2013年IO大会提出的,
六月的雨
2018-05-14
1.1K0
10.侧拉删除
* 应用场景: 聊天列表界面,邮件管理界面等条目管理(设为已读, 删除等) * 功能实现: 参考 侧滑面板 offsetLeftAndRight , offsetTopAndBottom activi
六月的雨
2018-05-14
6930
11.粘性控件
粘性控件 (对View的自定义) * 应用场景: 未读提醒的清除 * 功能实现: > 1. 画静态图 OK > 2. 把静态的数值变成变量(计算得到真实的变量) OK  > 3. 不断地修改变量
六月的雨
2018-05-14
7270
15.瀑布流、测量
排行界面 TopProtocol :json数据就是写字符串,所以不需要写bean对象 public class TopProtocol extends BaseProtocol<List<Strin
六月的雨
2018-05-14
1.6K0
用最简单的例子说明设计模式(三)之责任链、建造者、适配器、代理模式、享元模式
责任链模式 一个请求有多个对象来处理,这些对象是一条链,但具体由哪个对象来处理,根据条件判断来确定,如果不能处理会传递给该链中的下一个对象,直到有对象处理它为止 使用场景 1)有多个对象可以处理同一个
六月的雨
2018-05-14
5550
1.TabActivity、视图树、动画
整个页面为TabActivity, 其中对TabWidget进行了一些改变,当切换页签时页签后面红色背景会以Translate动画形式移动到相对应的页签后。 布局 TabHost、TabWidget、FrameLayout的id必须是系统定义的, 因为可以直接get获取控件,上面的Tab标签一般不写原生的,自己写。 把原生的TabWidget隐藏,用了个垂直的LinearLayout写, 下面是FrameLayout,也是TabHost必须写的 <RelativeLayout xmlns:android=
六月的雨
2018-05-14
7440
3.CursorAdapter
会话页面 点击菜单时编辑的按钮显示,其余的时候gone ConversationUI public class ConversationUI extends Activity impleme
六月的雨
2018-05-14
1.3K0
3.加载界面
1.  四种界面: 加载中, 加载错误,加载为空 ,加载成功 2.  根据不同的状态去切换界面 HomeFragment public class HomeFragment extends Fragment { public static final int STATE_UNKOWN = 0; public static final int STATE_LOADING = 1; public static final int STATE_ERROR = 2; public static final
六月的雨
2018-05-14
6600
9.代码抽取(adapter)
1  抽取Adapter 共性的方法 2  把getView方法里 和holder相关的逻辑 摘取到Holder代码中 3  把Holder 相关的代码 抽取到BaseHolder中  4  把adapter 中getVIew 方法 抽取到了DefaultAdpater中, 其中每个子类getView方法中holder不太一样,所以定义了抽象方法getHolder 要求子类去实现holder BaseHolder 所有holder的基类  DefaultAdapter 所有adapter 的基类
六月的雨
2018-05-14
5100
10. 面向holder编程、自动轮询
没有看过上一篇文章的话,建议先去阅读GooglePlay:9.代码抽取(adapter) 项目框架的搭建: 以后每个view都是holder BaseHolder public abstract class BaseHolder<Data> {//写data和t一样 private View contentView; private Data data; protected BitmapUtils bitmapUtils; public BaseHolder(){ bitmapUtils
六月的雨
2018-05-14
6940
12.值动画、测量规则
应用详情安全界面 DetailSafeHolder public class DetailSafeHolder extends BaseHolder<AppInfo> implements OnC
六月的雨
2018-05-14
6530
genymotion常见问题解答
[转]常见问题解答 很多人喜欢使用Genymotion这款安卓模拟器,但是虽然Genymotion很好用,可是却有各种问题存在哦,下面潇潇就一些常见的Genymotion问题来说下解决方法吧。 为什么我的邮箱收不到激活邮件? 答:出现此问题有3种情况:1、请查看垃圾邮件,发件人为Genymotion Cloud;2、您的邮箱是否设置相同发件人的邮件合并;3、可能是外国服务器的原因,请求超时;或者请求堆积以至于服务不稳定导致返回结果不正确。 您可以回到下载页面,使用相同的邮箱,多点几次免费下载;也可以点击这里
六月的雨
2018-05-14
2K0
1.viewpager
ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view。 ViewPager类直接继承了ViewGroup类,所以它是一个容器类,可以在其中添加其他的view类。
六月的雨
2018-05-14
7730
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档