前言
灵感与动力
灵感突现
做这个APP的想法,起源于两周前我堂妹突然转发给我了她的照片,因为她手上没有电脑不好调整图片的大小,希望我能帮她把照片的格式调成她需要的大小规格,我当时第一个想法是用win电脑自带的图片功能去给她限制大小,后面发现ps能保留更多图片细节和不同的采样方式,所以又使用ps给她调整了一下,发给了她,结果她也很满意,可是这又引发了我的思考,手机真的不好调整吗?
在查看众多美图APP如美图秀秀之类的,发现它们都有许多复杂的美颜功能,贴图功能,但唯独找不到指定宽高输出图片这个功能,它们也和手机自带相机一样,只有着为数不多的几个固定高宽比输出。
点燃动力
机缘巧合,由于当时工作上的业务正好用到了bitmap这个类,发现其实手机理论上也能实现指定高宽去输出图片,所以萌发了去做一个可以指定高宽的图片工具APP去练手,也因此引出了一堆我平常公司业务开发所忽略的问题,更是让我想通过这个简单工具去提升自己!
正篇
难得糊涂
怪圈
通过近一周的下班回家的编写,这才领悟到什么是纸上得来终觉浅,还是要应到那句“绝知此事要躬行”上的,我以为就是使用这个bitmap的方法去写一个函数然后用dialog弹窗让用户去选择图片调用它即可:
public Bitmap getNewBitmap(Bitmap bitmap, int newWidth ,int newHeight){ // 获区bitmap图片的宽高. int width = bitmap.getWidth(); int height = bitmap.getHeight(); // 计算调整后与调整前的缩放比例. float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // 取得想要缩放的matrix参数. Matrix matrix = new Matrix(); //缩放坐标轴 matrix.postScale(scaleWidth, scaleHeight); // 得到新的图片. Bitmap newBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); return newBitmap; }
结果发现这个方法倒是没什么问题,但dialog弹窗选择图片把我折磨坏了,然后一直就绕进了怪圈:
我想点击就去选择图片,结果发现自己用图片的绝对地址一直没有权限
恍然大悟
几个晚上过去我才终于想起来我应该求助与网上的大神博客,首先我先去了我们安卓著名大佬鸿洋博客搜了一下,在发现有自定义view的教程后又看了好几天才想起自己是来找打开相册获取图片的,发现正确的打开图库方式应该是URI获取,而不是直接找文件地址去拿图片,这已经涉及到用户安全的问题。
后记
通过构思我大概确定了这个APP的核心功能区域,也解决了一些小问题,但我还是没有来得及去实现,所以下一篇我将从构思过渡到完整逻辑代码的实现,至少先可以拿到手机上使用,然后再去看看UI方面要不要调整,以及是否需要增加新的功能,拭目以待吧!