Skip to content

As a set of valuable exercise demos when studying android, including some customed widgets.

Notifications You must be signed in to change notification settings

Iamasoldier6/AndroidExerciseDemos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AndroidExerciseDemos

更新日志:

无意间将以前提交 Demo 的备注信息污染了,好多变成了**重温 Activity 启动模式的 Demo 一**,可参照更新日志,以 README 的更新日志为准,待修复。

  • 2018.05.06

更新关于 SpannableString 使用的简单富文本实例,即 SpannableStringDemo,具体分析见博客浅谈 Android 中的富文本之强大的 SpannableString

  • 2017.11.18

更新好用的 RecyclerView 第三方库 Groupie 的简单使用 Demo,即 GroupieDemo,具体分析见博客解读好用的 RecyclerView 第三方库 Groupie

  • 2017.11.03

更新 Glide 的简单使用 Demo,即 GlideDemo,具体分析见博客 Android 图片加载之浅谈 Glide

  • 2017.09.29

更新 Universal Image Loader 的简单使用 Demo,即 UniversalImageLoaderDemo,具体分析见博客 Android 图片加载之浅谈 Universal Image Loader

  • 2017.09.17

更新 DialogFragment 的基本示例 Demo,即 DialogFragmentDemo,具体分析见博客浅谈 Android 中的 DialogFragment

  • 2017.08.24

更新 Bundle 传值的基本使用 Demo,即 BundleDemo,具体分析见博客浅谈 Android 中的 Bundle

  • 2017.07.17

更新 EventBus 的使用 Demo,里面综合了 Service 与 Activity 之间的通信、 Activity 之间的通信、Fragment 之间的通信和 Fragment 与 Activity 之间的通信,即 EventBusDemo,具体分析见博客Android EventBus 使用小结

  • 2017.07.12

更新重温 ViewPager 简单的基本使用 Demo,以便未来扩展至更复杂的使用,即 OriginViewPagerDemo。

  • 2017.07.09

继前日重温 Fragment 的基本使用系列,更新 Fragment 与 Activity 的通信 Demo,即 FragmentAndActivityChatDemo,具体分析见博客重温 Fragment 分析二:使用及注意事项

  • 2017.07.06

重温 Fragment 的基本使用,更新 FragmentBackStackDemo,具体分析见博客重温 Fragment 分析二:使用及注意事项

  • 2017.06.24

重温 Fragment 生命周期,更新 FragmentLifeCycleDemo,具体分析见博客重温 Fragment 分析一:生命周期

  • 2017.06.03

重温 Activity 启动模式的分析,更新 ActivityLaunchModeDemo 和 ActivityLaunchModeDemo2,测试 singleInstance 模式需要两个 App 结合一起使用,具体分析见博客重温 Activity 分析二:启动模式

  • 2017.05.28

重温 Activity 生命周期的分析,更新 ActivityLifeCycleDemo,具体分析见博客重温 Activity 分析一:生命周期

  • 2017.03.20

学习一个炫字都不够??!!!手把手带你打造 3D 自定义 view ,更新 ThreeDViewDemo。自此,关于自定义 View 的复习完毕,是时候自定义一波高质量的自定义 View 了。

  • 2017.03.19

学习恭喜发财! -- 手把手教你仿造一个 qq 下拉抢红包 Android 自定义 view,更新 QQHongBaoViewDemo。

  • 2017.03.16

学习手把手教你画一个 逼格满满圆形水波纹 loadingview Android,即 WaveLoadingViewDemo。

  • 2017.03.15

更新简单的原仿微信下拉出现眼睛的 Demo,即 WeChatEyeViewDemo。

  • 2017.03.14

更新简单的运用二阶贝塞尔曲线原理的,仿 QQ 消息拖动提示小红点消失的 Demo,即 QqWipeOffViewDemo。

  • 2017.03.13

更新简单的二阶贝塞尔曲线 Demo,即 QuadBezierLawDemo;

更新使用二阶贝塞尔曲线原理、仿 360 清理内存的动画 Demo,即 Imitate360ViewDemo。

  • 2017.03.12

学习手把手带你画一个时尚仪表盘 Android 自定义 View,更新 CarPanelViewDemo;

学习手把手带你做一个超炫酷 loading 成功动画 view Android 自定义 view,更新 LoadSuccessViewDemo。

  • 2017.03.08

更新简单的自定义坐标折线示意图,目前能显示,有点小问题待处理,即 FoldLineViewDemo。

  • 2017.03.06

更新简单的圆环进度 View,点击按钮随机调整进度,并显示百分比,即 PercentCircleViewDemo。

  • 2017.03.05

复习自定义 View,学习 Android 自定义 View (一),更新简单的自定义验证码 Demo,即 CustomAuthCodeView;

更新简单的自定义泡状对话框 Demo,即 BubbleViewDemo;

更新简单的带三角形或圆形波浪边的自定义优惠券 Demo,即 WaveViewDemo。

  • 2017.01.05

在 2016.09.01 更新的 FragTabDemo 基础上,演变成简单的添加了 ViewPager 的 Demo,仿微信似地可手动滑动切换 Tab,即 FragTabViewPagerDemo。

  • 2016.12.10

更新了 Dagger2 简单的使用 Demo,封装 Toast 注入到 BaseActivity 中,新建 Activity 继承自 BaseActivity,直接弹出提示 Toast,即 DaggerTwoDemo。

  • 2016.12.07

更新了 RxJava + Retrofit 的简单 Demo,实现获取豆瓣电影 top250 的部分数据,并以文本形式展示出来,即 RxJavaRetrofitDemo,参见 RxJava 与 Retrofit 结合的最佳实践

  • 2016.11.29

更新了简单应用社会化分享的 Demo ,参见 Mob,即 AndroidShareDemo。

  • 2016.11.20

更新了 WebView 中 Java 端和 JavaScript 端交互的 Demo,即 JavaAndJsCommunicateDemo。

  • 2016.10.10

更新了可自行设置所占百分比的饼状图,即 PercentPieDemo。

  • 2016.10.01

2016.09.10 的日志,更新了博客《浅析 Android 中的三大模式:MVC , MVP 和 MVVM (二)》中的 MVVMGitHubDemo;

更新了 MVP + Data Binding 改进版的 MVPDataBindDemo。

  • 2016.09.30

点击设定按钮,屏幕锁定黑屏,定时 5 秒后,自动解锁唤醒,点亮屏幕,更新了该 LockWakeScreenDemo。

  • 2016.09.15

在 2016.09.14 更新的基础上,实现了实时录音并在 js 页面上打印出实时音频振幅的 CustomRecordDemo,结束录音时,音频存储在本地。

  • 2016.09.14

更新了 WebView 与 js 页面实现简单交互的 WebViewDemo,如本例中,运行应用,播放音乐,点击按钮,发送音乐的采样信息到 js 页面显示出来。

  • 2016.09.12

更新了类似微软小冰,智能问答式的图灵机器人 TulingRobotDemo,需要在图灵机器人官网注册后,选择创建自己的机器人,再从个人中心取得自己的APIkey。

  • 2016.09.10

更新了博客《浅析 Android 中的三大模式:MVC , MVP 和 MVVM (一)》中的 MVCLoginDemo。

MVPLoginDemo 见 2016.09.02 的更新日志。

  • 2016.09.06

实现自定义的手势锁,可以指定 N * N 的锁点,锁的颜色变化和尝试解锁的次数等,即 CusGestureLockDemo。

  • 2016.09.05

实现图片为圆形或者自定义圆角,适用于应用中头像的自定义使用,即 CusCircleAvatarDemo。

  • 2016.09.04

使用滚轮选择器控件,实现类似淘宝手机客户端,可以选择收获地址的省市区三级联动组件 WheelSelectDemo。

  • 2016.09.03

更新了类似微信主界面,点击顶部标题栏右边加号,弹出个小窗口的 WeChatPopupWindowDemo。

  • 2016.09.02

学习理解 MVP 模式,更新了一个简单的登录界面的 MVPLoginDemo。

  • 2016.09.01

利用 Fragment,更新了项目常用的 Tab 切换 FragTabDemo,如一个主界面,其下面四个 Tab 页,互相切换,类似微信。

  • 2016.08.31

复习 Service,文章见郭霖的 Android Service 完全解析,关于服务你所需知道的一切(上) ,更新了 ServiceDemo。原文章里面创建前台 Service 的代码已遭废弃,更改为:

Notification.Builder builder = new Notification.Builder(this);
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
builder.setContentIntent(pendIntent)
       .setSmallIcon(R.mipmap.ic_launcher)
       .setWhen(System.currentTimeMillis())
       .setAutoCancel(false)
       .setTicker("有通知到来")
       .setContentTitle("这是通知的标题")
       .setContentText("这是通知的内容");
Notification notification = builder.build();
startForeground(1, notification);

结合郭霖的另一篇文章 Android Service 完全解析,关于服务你所需知道的一切(下) ,更新了 ClientTest,综合 ServiceDemo 一起,实现不同应用程序间跨进程通信的功能(有点小问题待处理优化)。

  • 2016.08.30

基于 8.29 的 FallsPicWallDemo,新增 ZoomImageView 类,实现多点触控,自由地对图片缩放和移动。文章见郭霖的 Android 多点触控技术实战,自由地对图片进行缩放和移动

  • 2016.08.29

更新了不规则排列的瀑布流照片墙的实现 FallsPicWallDemo,顺畅不崩溃。文章见郭霖的 Android 瀑布流照片墙实现,体验不规则排列的美感

  • 2016.08.28

使用 ZXing,更新了扫描二维码功能的 ScannerTest。

  • 2016.08.26

更新了下拉刷新的实现 PullDownRefreshDemo,可显示刷新后的文字与时间描述,可方便做后续的扩展。

  • 2016.08.25

基于 360FloatWindowDemo,更新了仿照 QQ 手机管家实现小火箭效果的 QQRocketDemo,即实现小火箭加速功能,将小火箭拖动到发射台上发射就会出现一个火箭升空的动画。

  • 2016.08.24

更新了简易的仿照 360 手机卫士悬浮窗效果的 360FloatWindowDemo。I. 主界面只有一个简单的按钮,点击按钮后,Activity 被关闭,小悬浮窗显示在桌面上,显示着当前内存使用的百分比;II. 小悬浮窗是可以自由拖动的,若打开了其它的应用程序,小悬浮窗会自动隐藏,回到桌面后小悬浮窗又会显示出来;III. 若点击小悬浮窗,会弹出大悬浮窗,大悬浮窗只有两个按钮,展示的时候手机的所有其它程序是不可点击的,因为焦点都在悬浮窗上。点击返回按钮会重新展示小悬浮窗,点击关闭悬浮窗按钮,Service 也会一起停掉。

  • 2016.08.23

更新了照片墙的实现 PictureWallDemo,拖动着,有时会出现 OOM,待优化中。文章见郭霖的 Android 照片墙应用实现,再多的图片也不怕崩溃

  • 2016.08.22

更新圆环形进度更新圈,即 CusProgressCircle。

  • 2016.08.21

更新了简易布局 SimpleLayoutDemo ,自定义一个布局,深刻地理解 onLayout() 的过程,文章见郭霖的 Android 视图绘制流程完全解析,带你一步步深入了解 View (二)

更新了简易绘制 CanvasDemo,理解 Canvas 与 onDraw();

更新了简易的自定义计数器 CounterDemo,文章见郭霖的 Android 自定义 View 的实现方法,带你一步步深入了解 View (四)

更新了简易的组合控件,即自定义标题栏 CustomTitleDemo;

更新了继承控件 ExtendListViewDemo,是对 ListView 的扩展,在 ListView 上滑动就可以显示出一个删除按钮,点击按钮就会删除相应的数据。

  • 2016.08.20

更新了分析 LayoutInflater 原理的 LayoutInflaterDemo,文章见郭霖的 Android LayoutInflater 原理分析,带你一步步深入了解 View (一)

  • 2016.08.18

更新自定义图片轮播控件,类似淘宝客户端中图片滚动播放器的效果,即 PicAutoSlideDemo (不过图片滚动到最后一张时,是迅速地回滚到第一张图片,再从头开始滚动。视觉体验差一些,待优化)。

  • 2016.08.17

将 Repositories 中原单独的竖直上下滑动来切换界面的 IS-VerticalViewPager 控件迁移到该项目空间中,即新命名的 VerticalViewPagerDemo (本项目空间中的 IS-VerticalViewPager 是空文件夹,Deprecated)。

  • 2016.08.07

更新了 Scroller 的 Demo ScrollerTest,实现一个简易版的 ViewPager。

  • 2016.08.03

更新了 ScrollDemo,侧重比较了 scrollTo() 和 scrollBy(),scrollTo() 方法是让 View 相对于初始位置滚动某段距离,scrollBy() 方法是让 View 相对于当前的位置滚动某段距离。

  • 2016.08.02

更新了对话框 Demo,即 DialogDemo;

更新了改进过的 Toast Demo,将 Toast 的调用封装成为一个接口,避免多次操作,跟随着多次弹出 Toast 提示,优化用户体验,即 ToastImproDemo。

  • 2016.08.01

更新了博客《 Android 事件传递机制研究综述(一)》的 Demo,即 BlogEventDemo。

  • 2016.06.17

更新了徐宜生《 Android 群英传》中 Activity 过渡动画 Demo,即 ActivityTransiDemo;

视图状态改变显示动画效果的 Demo,即 AnimSelecDemo;

5.0 系统下几种常用的 Notification 集合 Demo,即 NotificationDemo。

  • 2016.06.16

更新了徐宜生《 Android 群英传》中裁剪效果 Demo,即 ClipDemo。

  • 2016.06.15

更新了徐宜生《 Android 群英传》中图形特效处理的 Demo,即 ImagMatrixDemo;

使图片实现旗帜飞扬效果的 Demo,即 FlagBitmapDemo;

画笔特效处理的刮刮卡效果 Demo,即 ScratchCardDemo;

实现渲染 TileMode 效果的 Demo,即 RoundShaderDemo;

实现一个具有倒影效果的图片 Demo,即 ReflectViewDemo;

笔触效果绘制一个路径的 PathEffect Demo,即 PathEffectDemo;

使用 SurfaceView 绘制正弦曲线的 Demo,即 SurfaceSinDemo;

使用 SurfaceView 实现一个绘图板 Demo,即 PaintBoardDemo。

  • 2016.06.14

更新了徐宜生《 Android 群英传》中模拟一个 4 * 5 的颜色矩阵 Demo,即 SimuColorMatrixDemo;

常用图像像素点处理效果的 Demo,即 PixelsEffectDemo。

  • 2016.06.13

更新了徐宜生《 Android 群英传》中通过滑动 SeekBar,实时修改图像色调、饱和度、亮度的 Demo,即 SBarColorDemo。

  • 2016.06.12

更新了徐宜生《 Android 群英传》中计时器动画 Demo,即 TimerAnimDemo;

下拉展开动画 Demo,即 PullDownAnimDemo;

仪表盘绘制 Demo,即 ClockCanvasDemo;

初识 Layer 图层 Demo。

  • 2016.06.11

更新了徐宜生《 Android 群英传》中绘制半圆的 SVG 图形 Demo,即 HalfCirSvgDemo;

点击图像,两条横线 “二” 从中间折断并向中间折起,形成 “X” 的线图动画 Demo,即 LineAnimSvgDemo;

模拟地、月、日三个星体绕行轨迹的三球仪 Demo,即 ThreeBallSvgDemo;

绘制搜索框中一个放大镜的轨迹动画 Demo,即 SearchBarSvgDemo;

点击小红点,弹出菜单的灵动菜单 Demo,即 PopMenuAnimDemo。

  • 2016.06.10

更新了徐宜生《 Android 群英传》中使用 Bmob 创建移动后端服务的 Demo,即 BmobSerDemo。(注:1.建议仍然使用书上 Demo 提供的 SDK,去官网下载的最新 SDK 使用时,报“java.lang.UnsatisfiedLinkError”,并且不好解决;2.使用真机运行,模拟器运行报异常;3.使用自己创建应用时的 Application ID,并且 AndroidManifest.xml 文件需配置好;4.测试应用,如 "name" 和 "feedback" 栏分别输入 "zebron" 和 “good” ,依次测试就好;4.设置 Notification 相关属性下面的代码,官方已弃用),使用新代码代替,即

Notification.Builder builder = new Notification.Builder(context);
builder.setContentTitle("Bmob Test");
builder.setContentText(message);
builder.setSmallIcon(R.drawable.ic_launcher);
Notification notification = builder.getNotification();
manager.notify(R.drawable.ic_launcher, notification);

使用 ViewDragHelper 的仿 QQ 侧滑菜单的 Demo,即 QQDragDemo;

一些简单的视图动画 Demo,即 ViewAnimDemo;

自定义动画,模拟电视机关闭的效果和类似推门的 3D 动画效果,即 CustomAnimDemo。

  • 2016.06.09

更新了徐宜生《 Android 群英传》中,实现类似在 PC 中某些音乐播放器上根据音量大小显示的音频条形图 Demo,即 VolumeViewDemo;

实现类似 Android 原生控件 ScrollView 的自定义 ViewGroup Demo,即 CusScrollViewDemo;

事件的拦截、分发及处理 Demo,即 EventRejectDemo。

  • 2016.06.06

更新了徐宜生《 Android 群英传》中弧线展示图 Demo,即 CirProViewDemo。

  • 2016.06.05

更新了徐宜生《 Android 群英传》中 自定义 View 一节对现有控件进行拓展的 Demo,即 CusTextViewDemo;

动态的文字闪动效果 Demo,即 ShiTextViewDemo;

创建复合控件,生成固定 UI 模版的 Demo, 即 TopBarDemo。 (注:1.布局文件自定义部分以 custom 为开头;2.由于 AS 和 API 更新等的缘故,按照书上所做,会提示 Attribute "title" and "titleTextColor" has already been defined,那就在定义 attrs.xml 文件时重新命名这两个,如改成 "atitle" 和 "atitleTextColor",相应用到的地方亦作修改,可以解决 bug,且不影响最终结果。)

  • 2016.06.02

临睡前完成了徐宜生《 Android 群英传》中 View 的测量 Demo,即 ViewMeasureDemo。

  • 2016.05.23

更新了徐宜生《 Android 群英传》中 Android Scroll 分析章节的简易滑动 Demo,即 DragViewDemo。

  • 2016.05.20

更新了徐宜生《 Android 群英传》中 RecyclerView 的使用 Demo,即 RecyclerViewDemo,具体分析见博客 从 ListView 到 RecyclerView 的用法浅析

  • 2016.05.19

更新了徐宜生《 Android 群英传》中自动显示与隐藏布局 ListView 的使用 Demo,即 ScroDisHidListViewDemo,需要在真机上运行,模拟器体现不出效果;

模仿微信聊天布局 ListView 的使用 Demo,即 ChatListViewDemo;

动态改变点击 Item 布局的 ListView 使用 Demo,即 FocusListViewDemo。

  • 2016.05.18

更新了徐宜生《 Android 群英传》中动态修改 ListView 的使用 Demo,即 AcModiListViewDemo;

使 ListView 具有弹性的使用 Demo,即 FlexListViewDemo。

  • 2016.05.17

更新了郭霖《第一行代码》中 ListView 的使用 Demo,即 ListViewDemo,具体分析见博客 从 ListView 到 RecyclerView 的用法浅析

  • 2016.05.05

关于 Volley 自定义 Request,更新了 XMLRequest 的使用 Demo 和 GsonRequest 的使用 Demo。具体分析见博客 Android Volley 研究综述(三)

  • 2016.05.04

关于 Volley 加载网络图片,更新了 ImageRequest 的使用 Demo,ImageLoader 的使用 Demo,ImageLoaderCache 的使用 Demo 以及 NetworkImageView 的使用 Demo。具体分析见博客 Android Volley 研究综述(二)

  • 2016.04.29

之前看官方 Android Training 看到了 Volley 一节,于是最近,做公司项目需求之余,将 Volley 着重研究了下。更新了 StringRequest 的使用 Demo 和 JsonRequest 的使用 Demo。具体分析见博客 Android Volley 研究综述(一)

  • 2016.04.20

去年,学习郭霖《第一行代码》时,就接触了部分 Git 命令行操作,无奈许久未用,已淡忘。最近,工作之余,在研读官方 Android Training,已至Adding Animations一节,萌生从今往后,将 Android 学习过程中个人自觉有价值的代码统一放 Github 上的一个仓库里,于是,今天花了小半天将廖雪峰的 Git 教程学习了一遍。一来练手学习过程中出现的有些许价值的 Android 小 Demo;二来熟悉强大的 Git 和 Github,增加 GitHub 上的活跃度;三来供有需要的人参考,与人分享交流。大抵就这些。

About

As a set of valuable exercise demos when studying android, including some customed widgets.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages