Android图片编辑功能,GitHub - ControlToday/PhotoDealDemo: android图片编辑的一个demo,其实是一个可以使用的编辑框架。功能包括标记、文字、旋转、马赛...

PhotoDealDemo

android图片编辑的一个demo,其实是一个可以使用的编辑框架。功能包括标记、文字、旋转、马赛克、裁剪和编辑撤销,可以不依赖so库,只使用原生接口实现功能。

优势:

1可以不依赖so库

2具有撤销功能,目前开源的几乎没有

使用说明

1、OOM,必须在前一个页面,加载完成图片以后,才能进行图片编辑界面,否则OOM

解决:新启动一个进程来处理图片,并且自定义一个imageloader,避免内存溢出

另外可以提高效率。新建线程调用init方法,可以避免阻塞主线程,但是在频繁进出编辑activity时会

造成空指针,解决方法可以将ondraw()方法里面的调用设为synchronized,但是这样又严重影响

绘制效率。

所以要么就不在子线程调用Init方法,但是这样也会对效率有一定影响。

最好就是在进程中执行,离开activity杀掉进程,释放内存,也不存在什么频繁进出的问题了。

如果你不希望启动新进程,最好不要在子线程调用init方法,并且在ondestory中调用recycle方法回收内存

2、png图无法正常处理,透明背景会变成不透明

解决:观察了一下,手Q也是这样的,目前没有更好的解决办法,除非使用native即时渲染马赛克,

这样会增加so,并且需要考虑即时渲染算法

3、注意gif图

GIF图编辑以后,变成png

4、在编辑界面,然后切回桌面,来回切换,编辑状态是否被保留(activity可能会被杀掉)(解决)

一般不会被杀

问题:

5、裁剪后,可能存在1、2个像素列的空白(解决)

解决:旋转后,需要重新计算缩放,以适应屏幕大小。在适应matrix进行缩放过程中,由于使用浮点数,因此计算出的结果不完全准确。

由于裁剪的是正方形,因此缩放后两边长度相同,根据这个来进行再次限制

6、软键盘弹出问题(解决)

软键盘弹出后,不能挤压布局,但是要讲输入框和数字提示框挤上去

解决:布局需求是这样的,底部工具栏,高度是固定的,剩余的高度给actionimageview

也就是说不同屏幕,actionimageview高度不同.

这样,我给actionimageview设置match_parent就可以了.

但是软键盘弹出的时候,会将actionimageview挤压,因为要求软键盘弹出时,输入框被顶上去,但是其他部分不被顶上去,也不变化.

对于底部工具栏,设置layout_below在actionimageview,软键盘弹出的时候,就会被软键盘遮住,从而看不出它被顶上去

对于actionimageview被压缩的问题,因为是match_parent,而不是一个确定高度,所有布局被软键盘挤压时,actionimageview大小会变化,

因此,需要在布局完成后,计算当前actionimageview的高度,将这个高度设置给actionimageview,取代match_parent

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值