android多图拼接成一张新图片的问题

sinat_15620989 2017-07-31 04:01:30
最近有个需求,有若干张图片要竖直拼接成一张新的长图并保存
在拼接这一步遇到了问题

/**
* 拼接图片
* @param bitmaps 原图片的大小
* @return 拼接后的新图
*/
private Bitmap combineImage(Bitmap... bitmaps) {
int width = 0;
int height = 0;

//获取最大宽度
for (Bitmap bitmap : bitmaps) {
height = height + bitmap.getHeight();
if (width < bitmap.getWidth()) {
width = bitmap.getWidth();
}
}

Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
int tempHeight = 0;
//画图
for (int i = 0; i < bitmaps.length; i++) {
canvas.drawBitmap(bitmaps[i], 0, tempHeight, null);
tempHeight = bitmaps[i].getHeight() + tempHeight;
bitmaps[i].recycle();
}
return newBitmap;

}


这里是小弟看网上的代码执行的,结果会发现 画图的时候并不是从屏幕左上角开始画的,屏幕上下都留有一块很大的空白区域,想请大家帮帮忙解决一下这个问题。。
...全文
361 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_15620989 2017-07-31
  • 打赏
  • 举报
回复
private Bitmap combineImage(Bitmap... bitmaps) {
        int width = 0;
        int height = 0;

        //获取最大宽度
        for (Bitmap bitmap : bitmaps) {
            height = height + bitmap.getHeight();
            if (width < bitmap.getWidth()) {
                width = bitmap.getWidth();
            }
        }

        Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(newBitmap);
        int tempHeight = 0;
        //画图
        for (int i = 0; i < bitmaps.length; i++) {
            canvas.drawBitmap(bitmaps[i], 0, tempHeight, null);
            tempHeight = bitmaps[i].getHeight() + tempHeight;
            bitmaps[i].recycle();
        }
        return newBitmap;

    }

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧