Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
carrotech
doodle
提交
1811916d
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 搜索 >>
提交
1811916d
编写于
1月 15, 2019
作者:
H
hzw
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
optimize mosaic
上级
29c06cf9
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
49 addition
and
28 deletion
+49
-28
doodle/src/main/java/cn/hzw/doodle/DoodlePath.java
doodle/src/main/java/cn/hzw/doodle/DoodlePath.java
+49
-28
未找到文件。
doodle/src/main/java/cn/hzw/doodle/DoodlePath.java
浏览文件 @
1811916d
...
...
@@ -15,7 +15,6 @@ import java.util.WeakHashMap;
import
cn.hzw.doodle.core.IDoodle
;
import
cn.hzw.doodle.core.IDoodleColor
;
import
cn.hzw.doodle.core.IDoodleItem
;
import
cn.hzw.doodle.util.DrawUtil
;
/**
...
...
@@ -263,16 +262,7 @@ public class DoodlePath extends DoodleRotatableItemBase {
@Override
public
void
setLocation
(
float
x
,
float
y
,
boolean
changePivot
)
{
super
.
setLocation
(
x
,
y
,
changePivot
);
if
(
getPen
()
==
DoodlePen
.
MOSAIC
&&
getColor
()
instanceof
DoodleColor
)
{
DoodleColor
doodleColor
=
((
DoodleColor
)
getColor
());
Matrix
matrix
=
doodleColor
.
getMatrix
();
matrix
.
reset
();
matrix
.
setScale
(
doodleColor
.
getLevel
(),
doodleColor
.
getLevel
());
matrix
.
postTranslate
(-
getLocation
().
x
,
-
getLocation
().
y
);
doodleColor
.
setMatrix
(
matrix
);
refresh
();
}
adjustMosaic
();
}
@Override
...
...
@@ -300,6 +290,33 @@ public class DoodlePath extends DoodleRotatableItemBase {
adjustPath
(
false
);
}
@Override
public
void
setScale
(
float
scale
)
{
super
.
setScale
(
scale
);
adjustMosaic
();
}
private
void
adjustMosaic
()
{
if
(
getPen
()
==
DoodlePen
.
MOSAIC
&&
getColor
()
instanceof
DoodleColor
)
{
DoodleColor
doodleColor
=
((
DoodleColor
)
getColor
());
Matrix
matrix
=
doodleColor
.
getMatrix
();
matrix
.
reset
();
matrix
.
preScale
(
1
/
getScale
(),
1
/
getScale
(),
getPivotX
(),
getPivotY
());
// restore scale
matrix
.
preTranslate
(-
getLocation
().
x
*
getScale
(),
-
getLocation
().
y
*
getScale
());
matrix
.
preRotate
(-
getItemRotate
(),
getPivotX
(),
getPivotY
());
matrix
.
preScale
(
doodleColor
.
getLevel
(),
doodleColor
.
getLevel
());
doodleColor
.
setMatrix
(
matrix
);
refresh
();
}
}
@Override
public
void
setItemRotate
(
float
textRotate
)
{
super
.
setItemRotate
(
textRotate
);
adjustMosaic
();
}
private
void
adjustPath
(
boolean
changePivot
)
{
resetLocationBounds
(
mRect
);
mPath
.
reset
();
...
...
@@ -318,6 +335,9 @@ public class DoodlePath extends DoodleRotatableItemBase {
if
(
color
.
getType
()
==
DoodleColor
.
Type
.
BITMAP
&&
color
.
getBitmap
()
!=
null
)
{
mBitmapColorMatrix
.
reset
();
if
(
getPen
()
==
DoodlePen
.
MOSAIC
)
{
adjustMosaic
();
}
else
{
if
(
getPen
()
==
DoodlePen
.
COPY
)
{
// 根据旋转值获取正确的旋转底图
float
transXSpan
=
0
,
transYSpan
=
0
;
...
...
@@ -335,8 +355,9 @@ public class DoodlePath extends DoodleRotatableItemBase {
int
level
=
color
.
getLevel
();
mBitmapColorMatrix
.
preScale
(
level
,
level
);
color
.
setMatrix
(
mBitmapColorMatrix
);
refresh
();
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录