Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
carrotech
doodle
提交
7d4552dc
D
doodle
项目概览
carrotech
/
doodle
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
doodle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7d4552dc
编写于
10月 14, 2016
作者:
forward123_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加启动涂鸦界面的接口
上级
8e993fc8
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
49 addition
and
7 deletion
+49
-7
GraffitiLib/src/main/java/cn/hzw/graffiti/GraffitiActivity.java
...tiLib/src/main/java/cn/hzw/graffiti/GraffitiActivity.java
+17
-2
GraffitiLib/src/main/java/cn/hzw/graffiti/GraffitiView.java
GraffitiLib/src/main/java/cn/hzw/graffiti/GraffitiView.java
+3
-3
README.md
README.md
+26
-0
app/src/main/java/cn/hzw/graffitidemo/MainActivity.java
app/src/main/java/cn/hzw/graffitidemo/MainActivity.java
+3
-2
未找到文件。
GraffitiLib/src/main/java/cn/hzw/graffiti/GraffitiActivity.java
浏览文件 @
7d4552dc
...
...
@@ -2,6 +2,7 @@ package cn.hzw.graffiti;
import
android.app.Activity
;
import
android.app.AlertDialog
;
import
android.content.Context
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.graphics.Bitmap
;
...
...
@@ -30,6 +31,19 @@ import cn.forward.androids.utils.ThreadUtil;
*/
public
class
GraffitiActivity
extends
Activity
{
/**
* 启动涂鸦界面
* @param activity
* @param imagePath 图片路径
* @param requestCode startActivityForResult的请求码
*/
public
static
void
startActivityForResult
(
Activity
activity
,
String
imagePath
,
int
requestCode
)
{
Intent
intent
=
new
Intent
(
activity
,
GraffitiActivity
.
class
);
intent
.
putExtra
(
GraffitiActivity
.
KEY_IMAGE_PATH
,
imagePath
);
activity
.
startActivityForResult
(
intent
,
requestCode
);
}
public
static
final
String
KEY_IMAGE_PATH
=
"key_image_path"
;
private
String
mImagePath
;
private
Bitmap
mBitmap
;
...
...
@@ -248,6 +262,7 @@ public class GraffitiActivity extends Activity {
/**
* 计算两指间的距离
*
* @param event
* @return
*/
...
...
@@ -388,10 +403,10 @@ public class GraffitiActivity extends Activity {
@Override
public
void
onBackPressed
()
{
if
(
mBtnMovePic
.
isSelected
())
{
if
(
mBtnMovePic
.
isSelected
())
{
mBtnMovePic
.
setSelected
(
false
);
return
;
}
else
{
}
else
{
findViewById
(
R
.
id
.
btn_back
).
performClick
();
}
...
...
GraffitiLib/src/main/java/cn/hzw/graffiti/GraffitiView.java
浏览文件 @
7d4552dc
...
...
@@ -434,7 +434,6 @@ public class GraffitiView extends View {
public
final
float
toTransY
(
float
touchY
,
float
graffitiY
)
{
return
-
graffitiY
*
(
mPrivateScale
*
mScale
)
+
touchY
-
mCentreTranY
;
}
/**
* 将屏幕触摸坐标x转换成在canvas中的坐标
*/
...
...
@@ -449,14 +448,15 @@ public class GraffitiView extends View {
return
(
y
)
/
(
mPrivateScale
*
mScale
);
}
private
static
class
GraffitiPath
{
Pen
mPen
;
// 画笔类型
Shape
mShape
;
// 画笔形状
float
mStrokeWidth
;
// 大小
GraffitiColor
mColor
;
// 颜色
Path
mPath
;
// 画笔的路径
float
mSx
,
mSy
;
//
起始坐标
(手指点击)
float
mDx
,
mDy
;
//
终止坐标(手指触摸
)
float
mSx
,
mSy
;
//
映射后的起始坐标,
(手指点击)
float
mDx
,
mDy
;
//
映射后的终止坐标,(手指抬起
)
Matrix
mMatrix
;
// 仿制图片的偏移矩阵
static
GraffitiPath
toShape
(
Pen
pen
,
Shape
shape
,
float
width
,
GraffitiColor
color
,
...
...
README.md
浏览文件 @
7d4552dc
...
...
@@ -15,6 +15,32 @@
在涂鸦的过程中,可以自由地通过手势缩放和移动图片,以便更细微地涂鸦,同时在多次缩放后,可点击“O”按钮,快速居中图片。
### 使用
```
public class GraffitiActivity extends Activity {
/**
* 启动涂鸦界面
* @param activity
* @param imagePath 图片路径
* @param requestCode startActivityForResult的请求码
*/
public static void startActivityForResult(Activity activity, String imagePath, int requestCode);
}
```
### 界面
!
[
IMG
](
http://s1.sinaimg.cn/orignal/003eBWOtzy757JQaYiA00&690
)
!
[
IMG
](
http://s16.sinaimg.cn/orignal/003eBWOtzy757JPIatxbf&690
)
!
[
IMG
](
http://s1.sinaimg.cn/orignal/003eBWOtzy757JQ7CG470&690
)
### 相关文章
*
功能介绍:
[
android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(一)
](
http://blog.csdn.net/u012964944/article/details/52661940
)
*
原理介绍:
[
android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(二)
](
http://blog.csdn.net/u012964944/article/details/52769273
)
\ No newline at end of file
app/src/main/java/cn/hzw/graffitidemo/MainActivity.java
浏览文件 @
7d4552dc
...
...
@@ -42,9 +42,10 @@ public class MainActivity extends Activity {
}
ArrayList
<
String
>
list
=
data
.
getStringArrayListExtra
(
ImageSelectorActivity
.
KEY_PATH_LIST
);
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
Intent
intent
=
new
Intent
(
getApplicationContext
(),
GraffitiActivity
.
class
);
/*
Intent intent = new Intent(getApplicationContext(), GraffitiActivity.class);
intent.putExtra(GraffitiActivity.KEY_IMAGE_PATH, list.get(0));
startActivityForResult
(
intent
,
REQ_CODE_GRAFFITI
);
startActivityForResult(intent, REQ_CODE_GRAFFITI);*/
GraffitiActivity
.
startActivityForResult
(
MainActivity
.
this
,
list
.
get
(
0
),
REQ_CODE_GRAFFITI
);
}
}
else
if
(
requestCode
==
REQ_CODE_GRAFFITI
)
{
if
(
data
==
null
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录