拨开云雾,重建“千变万化”安卓图片规格调整器

295 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情,希望大家多多支持,帮忙点个赞,谢谢!

前言

之前作者曾说过想要写一个可以直接编辑安卓手机图片规格的APP,而且里面要加码许多功能,可中间由于有考试计划所以搁浅了。如今,作者又感到灵感迸发,所以要重新去看这个项目,让这个项目有更多实现的可能性!

image.png

原因

如今作者正在积极学习Flutter和Kotlin,所以项目不再用原先想用的Java语言了,我们将用更加新的语言去搭建,不让自己太落后。

而更重要的核心功能图片高宽任意调,我一开始是想用Bitmap方法与Matrix坐标去做,但现在我希望可以通过那些现有的成熟组件去做,希望可以不重复制造轮子,不过目前作者仍未找到其他方法,所以暂定使用下面方法:

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;
}

image.png

结语

此外,必要的缩放功能和裁剪功能等,可以直接调一些第三方库,使用它们现成的功能方法即可,减小工作量。

不过光是语言重新学习估计就会花费大量时间,所以后续还是会继续更新我在Kotlin上的学习与进步或者平时工作所得,以及刚刚接触的Flutter,希望能为界面带来新灵感。