导航:首页 > 操作系统 > android控件书籍

android控件书籍

发布时间:2023-08-21 19:28:04

‘壹’ android自定义View——从零开始实现书籍翻页效果(一)

前言 :本篇是系列博客的第三篇,这次我们要研究 书籍翻页效果 。不知道大家平时有没用过iReader、掌阅这些小说软件,里面的翻页效果感觉十分的酷炫。有心想研究研究如何实现,于是网上找了找,发现这方面的教学资料非常少,所幸能找到 何明桂大大 的 Android 实现书籍翻页效果----原理篇 这样的入门博客(感谢大大 Orz),我们就以这篇博客为切入点从零实现我们自己的翻页效果。由于这次坑比较深,预计会写好几期,感兴趣的小伙伴可以点下关注以便及时收到更新提醒,谢谢大家的支持 ~

本篇只着重于思路和实现步骤,里面用到的一些知识原理不会非常细地拿来讲,如果有不清楚的api或方法可以在网上搜下相应的资料,肯定有大神讲得非常清楚的,我这就不献丑了。本着认真负责的精神我会把相关知识的博文链接也贴出来(其实就是懒不想写那么多哈哈),大家可以自行传送。为了照顾第一次阅读系列博客的小伙伴,本篇会出现一些在之前 系列博客 就讲过的内容,看过的童鞋自行跳过该段即可

国际惯例,先上效果图,本次主要实现了 基本的上下翻页效果 右侧最大翻页距离的限制

在看这篇博客之前,希望大家能先了解一下书籍翻页的实现原理,博客链接我已经贴出来了。通过原理讲解我们知道,整个书籍翻页效果界面分成了三个区域, A 为当前页区域, B 为下一页区域, C 为当前页背面,如图所示

书籍翻页效果的实现就是要以我们 触摸屏幕位置的坐标 为基础绘制出这三个区域,形成模拟翻页的特效。要绘制这三个区域,我们需要通过一组 特定的点 来完成,这些点的坐标需要通过两个已知的点( 触摸点 相对边缘角 )计算得到,下图我将各个特定点的位置和计算公式贴出来,大家对照着原理一起理解(渣画工望体谅 ╮(╯▽╰)╭ ),其中 b 点是由 ae cj 的交点, k 点是由 ah cj 的交点

简单总结一下, a 是触摸点, f 是触摸点相对的边缘角, eh 我们设置为 af 的垂直平分线,则 g af 的中点, ab ak dj 直线 曲线cdb 是起点为 c ,控制点为 e ,终点为 b 二阶贝塞尔曲线 曲线kij 是起点为 k ,控制点为 h ,终点为 j 二阶贝塞尔曲线 ,区域 A B C 就由这些点和线划分开来。我们将这些点称为标识点,下一步就是模拟设定 a f 点的位置,将这组标识点绘制到屏幕上来验证我们的计算公式是否正确,创建 BookPageView

实体类 MyPoint 用来存放我们的标识点坐标

界面布局:

在Activity中进行注册

效果如图

前文我们提到 ab ak dj 直线 曲线cdb 是起点为 c ,控制点为 e ,终点为 b 二阶贝塞尔曲线 曲线kij 是起点为 k ,控制点为 h ,终点为 j 二阶贝塞尔曲线 。通过观察分析得知, 区域A 是由View 左上角 左下角 曲线cdb , 直线 ab ak 曲线kij 右上角 连接而成的区域,修改 BookPageView ,利用 path 绘制处 区域A

效果如图

区域C 理论上应该是由点 a , b , d , i , k 连接而成的闭合区域,但由于 d i 是曲线上的点,我们没办法直接从 d 出发通过 path 绘制路径连接 b 点( i , k 同理),也就不能只用 path 的情况下直接绘制出 区域C ,我们需要用 PorterDuffXfermode 方面的知识“曲线救国”。我们试着先将点 a , b , d , i , k 连接起来,观察闭合区域与 区域A 之间的联系。修改 BookPageView

效果如图

我们将两条曲线也画出来对比观察

观察分析后可以得出结论, 区域C 由直线ab,bd,dj,ik,ak连接而成的区域 减去 与区域A交集部分 后剩余的区域。于是我们设置 区域C 画笔 Xfermode 模式为 DST_ATOP

效果如图

最后是 区域B ,因为 区域B 处于最底层,我们直接将 区域B 画笔 Xfermode 模式设为 DST_ATOP ,在 区域A、C 之后绘制即可,修改 BookPageView

效果如图

翻页可以从右下方翻自然也可以从右上方翻,我们将 f 点设在右上角,由于View上下两部分是呈 镜像 的,所以各标识点的位置也应该是镜像对应的,因为 区域B和C 的绘制与 f 点没有关系,所以我们只需要修改 区域A 的绘制逻辑,新增 getPathAFromTopRight() 方法

效果如图

之前由于测试效果没有对View的大小进行重新测量,在实现触摸翻页之前先把这个结了。重写View的 onMeasure() 方法

我们的需求是,在上半部分翻页时 f 点在右上角,在下半部分翻页时 f 则在右下角,当手指离开屏幕时回到 初始状态 ,根据需求,修改 BookPageView

在Activity中监听View的 onTouch 状态

注意,要设置 android:clickable true ,否则无法监听到 ACTION_MOVE ACTION_UP 状态

效果如图

到这里我们已经实现了基本的翻页效果,但要还原真实的书籍翻页效果,我们还需要设置一些限制条件来完善我们的项目

对于一般的书本来说,最左侧应该是钉起来的,也就是说如果我们从右侧翻页,翻动的距离是 有限制的 ,最下方翻页形成的曲线起点( c 点)的x坐标不能小于0(上方同理),按照这个限定条件,修改我们的 BookPageView

效果如图

至此本篇教程就告一段落了,当然还有许多功能需要继续完善,例如横向翻页、翻页动画、阴影效果等等,这些都会在后面的教程中一一解决。如果大家看了感觉还不错麻烦点个赞,你们的支持是我最大的动力~

‘贰’ 怎样从零开始学习安卓软件开发

1、Java se基础

1).Java基本数据类型与表达式,分支循环。
2).String和StringBuffer的使用、正则表达式。
3).面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类。
4).对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。
5).Java异常处理,异常的机制原理。
6).常用的设计模式:Singleton、Template、Strategy模式。
7).JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。
8).Java集合介绍:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等常用集合类API。
9).JavaI/O输入输出流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。
10).Java高级特性:反射和泛型。
11).多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。

2、android UI编程

1)、Android开发环境搭建:Android介绍,Android开发环境搭建,第一个Android应用程序,Android应用程序目录结构。

2)、Android初级控件的使用:

TextView控件的使用
Button控件的使用方法
EditText控件的使用方法
ImageView的使用方法
RadioButton的使用方法
Checkbox的使用方法
Menu的使用方法

3)、Android高级控件的使用:

ListView的使用方法
GridView的使用方法
Adapter的使用方法
Spinner的使用方法
Gallary的使用方法
ScrollView的使用方法
RecyclerView

4、对话框与菜单的使用:

Dialog的基本概念
BlockquoteAlertDialog的使用方法
DatePickerDialog的使用方法
Menu的使用方法
自定义Menu的实现方法

5.控件的布局方法:

线性布局的使用方法
相对布局的使用方法

6.多Acitivity管理:

AndroidManifest.xml文件的作用
Intent的使用方法
使用Intent传递数据的方法
启动Activity的方法
IntentFilter的使用方法
Activity Group的使用方法

7、自定义控件实现方法:

自定义ListView的实现方法
可折叠ListView的使用方法
自定义Adapter的实现方法
自定义View的实现方法
动态控件布局的上实现方法
上拉刷新下拉加载更多

3、android网络编程与数据存储

1).基于Android平台的HTTP通讯:

Http协议回顾
使用Get方法向服务器提交数据的方法
使用POST方法向服务器提交数据的实现方法
使用Http协议实现多线程下载
使用Http协议实现断点续传

2).Android数据存储技术:

SQLite3数据库简介
SQL语句回顾
SQLite3编程接口介绍
SQLite3事务管理
SQLite3游标使用方法
SQLite3性能分析
访问SDCard的方法
访问SharedPreferences的方法

初级工程师

技术要求:

-----------------------------------------------------------------

作者:小码同学
链接:https://zhuanlan.hu.com/p/163528281
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

‘叁’ Android 开发上有什么比较好的书可以推荐

个人认为android的版本更新实在太快了,任何一本书籍都不可能跟上它的步伐。没有最好的书籍,只有相对适合的教材,而且针对特定人群。


个人认为对于新手学习的话,买一本入门书籍就可以了。《疯狂android讲义》这本书,这本是门槛很低,而且里面的例子相当的多,可以说是从零开始学android。首先这本书介绍了基本的android开发知识,比如环境,平台等。然后介绍了android的基本组建,五大组件,还介绍开发的基本流程,特色,比如界面与代码可以是分离的等概念。后面还手把手做了一些程序

1. 进一步熟悉Android框架内部

我不是说熟悉其文档,而是指框架代码。许多开发者害怕去深入Android框架内部,了解其工作原理以及各个部分是如何相互配合的。

如果你想在Android平台更上一层楼,大胆的接触Android SDK的内部,和它成为朋友。

2. 克服错失恐惧症

Android很大,非常的大。你不可能在一两个月内就从头到尾学一遍。学的越多,会发现更多的新东西需要学习。作为一个初学者,总是担心自己学漏了什么是非常正常的。

但是要克服这种担忧,学习自己目前开发的app所需要的就够了,然后慢慢的开拓自己的视野。

3. 开始阅读更多代码

许多开发者不愿意抽时间去阅读别人的代码,只把大部分时间花在写自己已经知道的东西上面。

但是那样不会帮助你成长,也不会增长你的知识。你应该开始阅读其它的开源app和开源库的代码。每天阅读30分钟的代码是一个好的开始。你会惊奇的发现原来还有这么多你不知道的东西。

‘肆’ 国外有哪些关于Android的学习网站或资料或论坛

国外的Android学习网站最大资源帝Google官方——Android开发者网站。

Google官方开发者支持平台Android Developers,开发者可以找到Google关于Android设计(Design)、开发(Develop)及发布应用(Distribute)的官方说明文档。

在Develop(开发)中,分别有教程(Android Training)、API指南(API Guides)、引用(Ref-erence)、工具(Tools)四项内容。下面就对这四项内容进行简单介绍。

(1)Android Training:在这个模块中,Google针对初学者和中高级开发者分别给出初级(Get Started)和高级(Advanced Training)两个级别的教程。网站右侧都提供Demo工程下载,使开发者可以很方便地下载学习。

初级教程内容包括应用界面搭建、管理Activity生命周期、对不同移动设备进行适配等内容。高级教程则包括了大量的Android系统特性及OpenGLes使用等内容。

(2)API Guides:该模块包含了Android API说明文档,对Android中的每个功能模块进行说明。说明文档中有大量的范例代码。如果对某一个控件或某一个传感器的使用不明白.可以在这里找到答案。
(3)Reference:根据Android包结构对每一个类及类中的接13、方法进行说明。对一个Android方法的使用不是很明白时,就赶快来这里查查吧!可以使用网站右上角的搜索按钮来寻找自己所需要的文档说明。

(4)Tools:这个模块介绍了与Android开发工具使用方法。

阅读全文

与android控件书籍相关的资料

热点内容
计算机专业学51单片机 浏览:206
程序员不接受反驳 浏览:294
微软自带的压缩软件 浏览:286
中国玩家在日本服务器做什么 浏览:48
12864和单片机 浏览:898
25匹空调压缩机 浏览:649
adkandroid下载 浏览:308
如何在苹果电脑上装python 浏览:327
哪个app的跑步训练内容最丰富 浏览:583
广讯通怎么删除文件夹 浏览:206
解压的视频化妆品 浏览:674
易语言新进程监视源码 浏览:941
turbo码译码算法 浏览:956
stc11f16xe单片机 浏览:282
linuxupdate命令行 浏览:578
pdf转化成wps 浏览:765
php抛出错误 浏览:159
买车看车用什么app 浏览:656
dos怎么清除屏幕上的命令 浏览:813
压缩裤冬天 浏览:449