文档库 最新最全的文档下载
当前位置:文档库 › SPen_SDK_Programming_Guide_cn

SPen_SDK_Programming_Guide_cn

SPen_SDK_Programming_Guide_cn
SPen_SDK_Programming_Guide_cn

Samsung Electronics

S Pen SDK 示例代码教程

Table of Contents

1. S Pen SDK 介绍 (4)

1-1. 关于S Pen SDK (4)

1-2. S Pen SDK的软件包 (4)

2. 设置S Pen SDK (4)

2-1. S Pen SDK (4)

2-2. 设置Android项目的S Pen程序库 (4)

3. 入门指南以及示例代码解析 (5)

3-1. 示例代码:示例1 (5)

3-2. CanvasView类 (8)

3-2-1. 初始化CanvasView (8)

3-2-2. 更改为CanvasView模式 (9)

3-2-3. CanvasView的撤消/恢复操作 (9)

3-2-4. 保存/载入绘画 (11)

3-2-5. Zooming in/out 放大和缩小 (12)

3-2-6. Panning 移动 (13)

3-2-7. Setting the Background 设置背景图像 (13)

3-3. SettingView类 (13)

3-3-1. 初始化SettingView (13)

3-3-2. 设置SettingView到CanvasView (14)

3-3-3. 打开/关闭SettingView (14)

3-3-4. 确认SettingView是否已在屏幕上显示 (15)

3-3-5. 画笔/橡皮擦SettingView (16)

3-4. PenSettingInfo类 (17)

3-4-1. 初始化PenSettingInfo (17)

3-4-2. 使用OnSettingInfoChangedListener监听器 (17)

3-4-3. 用自定义对象来替换CanvasView的PenSettingInfo对象 (18)

Copyright

Copyright 2011 Samsung Electronics Co. Ltd. All Rights Reserved.

Though every care has been taken to ensure the accuracy of this document, Samsung Electronics Co. Ltd. cannot accept responsibility for any errors or omissions or for any loss occurred to any person, whether legal or natural, from acting, or refraining from action, as a result of the information contained herein. Information in this document is subject to change at any time without obligation to notify any person of such changes.

Samsung Electronics Co. Ltd. may have patents or patent pending applications, trademarks copyrights or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give the recipient or reader any license to these patents, trademarks copyrights or other intellectual property rights.

No part of this document may be communicated, distributed, reproduced or transmitted in any form or by any means, electronic or mechanical or otherwise, for any purpose, without the prior written permission of Samsung Electronics Co. Ltd.

The document is subject to revision without further notice.

All brand names and product names mentioned in this document are trademarks or registered trademarks of their respective owners.

For more information, please visit https://www.wendangku.net/doc/e73185646.html,

.

S Pen SDK 示例代码教程

本文档提供了SDK的安装指南以及示例代码,使开发者能够非常方便的使用S Pen SDK。对于如何使用S Pen SDK API的具体说明,请参阅SDK文件中的API参考文档部分。

本文件包括简介部分和S Pen SDK的基本安装方法,并通过简单的示例代码介绍了API函数。有关配置和构建基本的Android开发环境不包括在本文件内。

1. S Pen SDK 介绍

1-1. 关于S Pen SDK

S Pen SDK提供绘图程序库,使Android绘图应用程序开发变的容易。

1-2. S Pen SDK的软件包

S Pen SDK包括以下软件包。

- 文档:包括所有的S Pen SDK的相关文件。

- 程序库:包括S Pen SDK程序库。

- 示例:基于S Pen SDK的示例代码。

2. 设置S Pen SDK

2-1. S Pen SDK

需要提前构建Android开发环境,之后才可以使用S Pen SDK。构建Android开发环境,以下的组件是必需的。请参阅相关链接,获得如何下载和安装这些组件的信息。

- JDK : Java SE Development Kit

https://www.wendangku.net/doc/e73185646.html,/technetwork/java/javase/downloads/index.html

- Android SDK

https://www.wendangku.net/doc/e73185646.html,/sdk/index.html

- IDE : Eclipse

https://www.wendangku.net/doc/e73185646.html,/downloads/

2-2. 设置Android项目的S Pen程序库

在Android开发环境构建完成后,你便可以创建基本的Android项目。要在创建的项目中使用S Pen SDK,请先完成S Pen SDK下载。

- S Pen SDK 下载地址

https://www.wendangku.net/doc/e73185646.html,/android/spen.sdk

将下载的S Pen SDK程序包解压缩之后,在创建项目的“build path”路径下,在程序库目录中设置“libspen.jar”作为“library”路径。

[图01] 在项目中加入S Pen SDK程序库。

3. 入门指南以及示例代码解析

3-1. 示例代码:示例1

学习如何使用基本的S Pen API,我们将在示例1中解释SDK中的示例代码。

[图02] 示例代码: 执行示例1的结果。

示例1代码屏幕包含位于顶部的方格和一个在底部方方格中的画布区域的按钮。在顶部方格中的按钮,具有下列功能。

- 画笔:切换到画笔功能或在画笔模式中打开画笔设置弹出窗口。

- 擦除:切换到橡皮擦功能或在橡皮擦模式下打开橡皮擦设置弹出窗口。

- 撤消:取消一次绘图操作。

- 恢复:再次执行最后取消的绘图。

位于屏幕的底部方格中的画布区域显示用户在屏幕上的绘画。

通过示例1的示例代码,让我们来看看在S Pen API CanvasView和SettingView类的功能。如需了解更多可用API的详细信息,请参阅SDK文档目录中的API参考文档。

下面是示例1的布局。

正如你在执行屏幕上看到的屏幕布局,屏幕由顶部方格中的按钮区域和在底部方格中的画布区域组成。注意在屏幕的底部方格中,S Pen SDK的CanvasView和SettingView。

3-2. CanvasView类

CanvasView类继承视图和执行绘图画布的作用。如果分配CanvasView到activity中,用户就可以在屏幕的画布上绘制。用户可擦除图画,更改默认的颜色,粗细或透明度,当然还可以保存或载入绘图。

3-2-1. 初始化CanvasView

要使用CanvasView,你需要使用源代码中的findViewById方法从布局中分配CanvasView。

如果你已经嵌入了示例代码,你就可以在屏幕上绘图了。

[图03] 在CanvasView下绘图时屏幕上的改变。

3-2-2. 更改为CanvasView模式

CanvasView提供2种模式:画笔和橡皮擦。画笔模式用于普通画笔屏幕上作画,橡皮擦擦除绘制在屏幕上的内容。使用如下changeModeTo方法,您可以更改CanvasView模式。在CanvasView初始化时,默认模式是画笔模式。

3-2-3. CanvasView的撤消/恢复操作

使用单一的指令,可以恢复或撤消CanvasView上的绘图。

通过点击相应按钮的事件监听器中CanvasView的撤消和恢复方法,执行撤消和恢复操作。此时,撤消或恢复操作的最多次数是30次。

[图04] 撤销操作

此外,您可以使用isUndoable和isRedoable方法,识别撤销和恢复操作的可用性,并相应地启用或禁用这些按钮。

此外,您可以设置OnHistoryChangeListener监听器,它是为CanvasView设置的绘图事件监听器。它可以通过监听识别撤消或恢复操作的可用性。

3-2-4. 保存/载入绘画

保存屏幕上的绘画,并在屏幕上加载它们,您可以使用CanvasView的GetData和SetData方法。ExampleUtils在下面的示例代码是用来将绘图作为文件保存,并应由开发者手动进行设置。你可以在完整的示例1代码中找到示例实现方法。

3-2-5. Zooming in/out 放大和缩小

CanvasView画布(drawing screen)可以在1倍到50倍大小之间进行缩放。示例程序SPen_Example_ZoomPan演示了如何使用这个特性(您可以在S Pen SDK示例5中查看到完整的代码)。

[图05] 放大

3-2-6. Panning 移动

可以通过指定x和y的坐标值来移动CanvasView画布(drawing screen)。示例程序SPen_Example_ZoomPan演示了如何使用这个特性。

注意,这里移动的距离和放大等级无关。比方说,如果在放大2倍的情况下把图水平移动1像素,那么图在屏幕上移动的就是1像素(而不是2像素)。

3-2-7. Setting the Background 设置背景图像

可以为CanvasView设置背景图像,背景图像分为上中下3个部分,需要为每个部分指定各自的图像。

建议您使用与canvas图宽度相同的图像,否则图像将被拉伸到CanvasView的宽度而产生变形。

3-3. SettingView类

SettingView类用来在CanvasView中改变画笔的类型、默认颜色、笔画粗细以及笔的透明属性。根据CanvasView不同的模式,屏幕上显示画笔或者橡皮擦的弹出设置窗口。通过上层布局在activity中定位SettingView和在初始化CanvasV iew时将SettingView设置给CanvasView,两个视图是同步的。

3-3-1. 初始化SettingView

要使用SettingView,需要在源码中使用findViewById方法在布局中找到SettingView。

3-3-2. 设置SettingView到CanvasView

为了将画笔在SettingView中更改的设定应用到CanvasView中,需要将CanvasView和SettingView连接在一起。可以使用CanvasView的setSettingView方法。

3-3-3. 打开/关闭SettingView

使用showView方法来打开SettingView。使用closeView方法来关闭SettingView。

但是,由示例1的代码所示,您需要在CanvasView中先使用ModeContext的changeModeTo方法来更改模式,在屏幕上打开相应的设置窗口。

[图 06] 画笔/橡皮擦模式的弹出设置窗口

3-3-4. 确认SettingView 是否已在屏幕上显示

确认SettingView 是否已在屏幕上显示,可以使用如下示例代码中的isShown 方法。但是如果需要进一步确认弹出的设置窗口是画笔模式还是橡皮擦模式,则需要传递SettingView 类型作为参数。

3-3-5. 画笔/橡皮擦SettingView

在弹出的画笔设置窗口,可以选择四种笔形(硬笔,毛笔,铅笔,荧光笔)和设置颜色,笔画粗细以及透明度。弹出的设置窗口也提供了画笔属性设置的预览。

[图07] 弹出的画笔设置窗口

在弹出的橡皮擦设置窗口,可以调整橡皮擦的大小,或者使用“Clear All”按钮来擦除CanvasView中绘制的全部图。

[图08] 弹出的橡皮擦设置窗口

3-4. PenSettingInfo类

PenSettingInfo类用来管理画笔的设置。有很多方法来获取和设置各种各样的画笔/橡皮擦的参数,比如宽度,透明度,颜色和画笔类型。该类被用来在CanvasView和SettingView内部使用,但是也可以使用类构造器来手动构建PenSe ttingInfo对象。示例程序SPen_Example_PenSettingInfo演示了如何使用该类(您可以在S Pen SDK的示例3中查看完整的代码)。

3-4-1. 初始化PenSettingInfo

使用PenSettingInfo对象,可以用类构造器来手动构建或者从CanvasView现有对象进行初始化。

3-4-2. 使用OnSettingInfoChangedListener监听器

使用OnSettingInfoChangedListener来监听PenSettingInfo对象的更改。

监听器需要实现如下几个方法:监听画笔类型,宽度,颜色和透明度的更改。

3-4-3. 用自定义对象来替换CanvasView的PenSettingInfo对象

可以使用setPenSettingInfo方法将CanvasView的PenSettingInfo对象及其相对应的SettingView替换为您自定义的PenSettingInfo对象。

相关文档