Android集成mupdf,实现手写笔签字,手指翻页的java代码
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.RectF;
import android.util.Log; import java.util.LinkedList; import com.artifex.mupdfdemo.MuPDFCore;
import com.artifex.mupdfdemo.OutlineActivityData;
import com.artifex.mupdfdemo.Page;
import com.artifex.mupdfdemo.TextWord; public class MuPDFReader {
private final static String TAG = "MuPDFReader"; private MuPDFCore mCore;
private Page mCurrentPage;
private int mCurrentPageNumber;
private DocumentListener mListener; public MuPDFReader(String path) {
try {
mCore = new MuPDFCore(path);
mCurrentPageNumber = 0;
mCurrentPage = mCore.getPage(0);
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
} public int getPageCount() {
return mCore.countPages();
} public void setCurrentPage(int pageNumber) {
if (pageNumber < 0 || pageNumber >= mCore.countPages()) {
return;
}
mCurrentPageNumber = pageNumber;
mCurrentPage = mCore.getPage(pageNumber);
if (mListener != null) {
mListener.onPageChanged(pageNumber);
}
} public int getCurrentPageNumber() {
return mCurrentPageNumber;
} public void setDocumentListener(DocumentListener listener) {
mListener = listener;
} public void goToPreviousPage() {
if (mCurrentPageNumber > 0) {
mCurrentPageNumber--;
mCurrentPage = mCore.getPage(mCurrentPageNumber);
if (mListener != null) {
mListener.onPageChanged(mCurrentPageNumber);
}
}
} public void goToNextPage() {
if (mCurrentPageNumber < mCore.countPages() - 1) {
mCurrentPageNumber++;
mCurrentPage = mCore.getPage(mCurrentPageNumber);
if (mListener != null) {
mListener.onPageChanged(mCurrentPageNumber);
}
}
} public Bitmap getPageBitmap(int width, int height) {
return mCurrentPage.getBitmap(width, height);
} public LinkedList<OutlineActivityData> getOutlines() {
LinkedList<OutlineActivityData> data = new LinkedList<OutlineActivityData>();
OutlineActivityData root = new OutlineActivityData(null, -1);
root.children = mCore.getOutline();
data.add(root);
return data;
} public LinkedList<TextWord> getTextWords() {
return mCurrentPage.getText();
} public RectF getPageBounds(int width, int height) {
return mCurrentPage.getBounds(width, height);
} public void drawBackground(Bitmap bm, int pageW, int pageH, int patchX,
int patchY, int patchW, int patchH) {
mCurrentPage.drawBackground(bm, pageW, pageH, patchX, patchY, patchW,
patchH);
} public void drawPage(Bitmap bm, int pageW, int pageH, int patchX,
int patchY, int patchW, int patchH) {
mCurrentPage.draw(bm, pageW, pageH, patchX, patchY, patchW, patchH,
Color.BLACK, Color.WHITE);
} public void addAnnotation(float x, float y, float w, float h, int color) {
mCurrentPage.addAn
Android集成mupdf,实现手写笔签字,手指翻页的java代码的更多相关文章
- Android+TensorFlow+CNN+MNIST 手写数字识别实现
Android+TensorFlow+CNN+MNIST 手写数字识别实现 SkySeraph 2018 Email:skyseraph00#163.com 更多精彩请直接访问SkySeraph个人站 ...
- 苹果没放弃手写笔 这样的iPad你想要吗?
12 月 31 日,美国专利与商标局(The U.S. Patent and Trademark Office)当地时间周四批准了一项来自苹果的专利申请,该专利主要描述的是一种可以通过陀螺仪.无线通讯 ...
- 手把手集成web端手写公式功能
何为手写公式,很简单,就是在网页上可以写出数学公式,并能够生成Latex格式的字符串.废话不多说,直接走正题. 一.首先大家可以先去官网了解一下myscript这个插件 官方网站:https://de ...
- servlet(1) - 手写第一个servlet程序 - 小易Java笔记
声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定 1. 建立程序的文件结构 ==>找到tomcat的安装目录,在webapps目录下新建一个名 ...
- ★android开发--ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)
例子中用于解析Json的Gson请自己Google下载 主Activity: package COM.Example.Main; import java.util.HashMap; import ja ...
- 纯css3写的仿真图书翻页效果
对css3研究越深入,越觉得惊艳.css3说不上是万能的,但是它能实现的效果也超出了我的想象.它的高效率和动画效果的流畅性很多情况下能替代js的作用.个人习惯css3能实现的效果就不会用js,虽然在国 ...
- Android 滑动效果高级篇(七)—— 华丽翻页效果
By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处 之前看到像ipad上的ibook的模拟书籍翻页的特效感觉很炫,在android上也有像laputa和ireader ...
- 不要写很酷但同事看不懂的Java代码
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码.下面这一行代码(出自大牛之手)据说可以征服你的朋 ...
- 4、android xml中drawableTop(drawableBoottom、drawableLeft、drawableRight)在java代码中的动态配置
做安卓开发的朋友都知道,我们在xml中可以通过这样来对button设置其上部或者(下.左.右)的图片资源: 那么如果需要动态配置图片呢?我们不得不使用java代码来进行操作: Drawable dra ...
- HDU 5183 Negative and Positive (NP) ——(后缀和+手写hash表)
根据奇偶开两个hash表来记录后缀和.注意set会被卡,要手写hash表. 具体见代码: #include <stdio.h> #include <algorithm> #in ...
随机推荐
- vh 存在问题?试试动态视口单位之 dvh、svh、lvh
大部分同学都知道,在 CSS 世界中,有 vw.vh.vmax.vmin 这几个与视口 Viewport 相关的单位. 正常而言: 1vw 等于1/100的视口宽度 (Viewport Width) ...
- C语言定制DEBUG信息
C语言定制DEBUG信息 背景与问题 在日常编写程序中,我们经常需要输出一些调试信息帮助我们 DEBUG 或者更好的编程,通常我们的做法是这样的: 在需要的地方直接printf(...)输出有用的信息 ...
- ClickHouse(12)ClickHouse合并树MergeTree家族表引擎之AggregatingMergeTree详细解析
目录 建表语法 查询和插入数据 数据处理逻辑 ClickHouse相关资料分享 AggregatingMergeTree引擎继承自 MergeTree,并改变了数据片段的合并逻辑.ClickHouse ...
- 【HMS Core】一张图片带你玩转机器学习服务
1.介绍 总览 Cloud DB(云数据库)是一款端云协同的数据库产品,提供端云数据的协同管理.统一的数据模型和丰富的数据管理API接口等能力.在保证数据的可用性.可靠性.一致性,以及安全等特性基础 ...
- Vue25 mixin
1 简介 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被"混合" ...
- 计算机网络基础05-Web应用
1 Web最重要的构成基础 网页 网页互相连接 1.1 网页 网页包含多个对象 对象:HTML文件.图片文件.视频文件.动态脚本等 基本HTML文件:包含对其它对象引用的连接 1.2 对象的寻址 UR ...
- linux09-分区挂载
1.Linux分区简要介绍 Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分. Linux ...
- IIS重定向HTTP至HTTPS
一.安装URL重写模块,自行百度下载 二.选择网站进行添加规则 三.总结 其实就是在站点的Web.config增加了一段配置: <system.webServer> <rewrite ...
- 2021级《JAVA语言程序设计》上机考试试题6
首先管理员页面 代码: <%@ page language="java" contentType="text/html; charset=UTF-8" p ...
- Ansible 快速入门到放弃
Ansible 快速入门到放弃 最是人间留不住,朱颜辞镜花辞树. 1-Ansible 简介 Ansible是一个配置管理和配置工具,它使用SSH 连接到服务器并运行配置好的任务,服务器上只需要开启ss ...