You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何沿水平方向将图片等分为两部分并在ImageView中展示

Android 图片水平均分拆分实现方案

核心逻辑是直接操作原始图片的像素数据完成裁剪,全程不针对ImageView控件做任何拆分调整,拆分完成后再将生成的两张独立图片加载到对应控件即可。

实现步骤

  • 加载获取原始待处理的Bitmap对象,支持从资源文件、本地存储、网络加载等任意来源获取原图
  • 计算拆分尺寸:水平均等拆分时,拆分后单张图片的宽度与原图一致,高度为原图高度的1/2
  • 调用系统Bitmap裁剪API,分别提取上下两部分的像素数据,生成两张独立的Bitmap
  • 将两张拆分后的Bitmap分别设置到对应的ImageView控件中完成展示

完整实现代码

// 加载原始待拆分图片,可替换为你实际的图片获取来源
Bitmap originalImg = BitmapFactory.decodeResource(getResources(), R.drawable.your_target_image);
int imgWidth = originalImg.getWidth();
int imgHeight = originalImg.getHeight();

// 计算单张拆分图的高度
int perPartHeight = imgHeight / 2;

// 裁剪生成上半部分图片
Bitmap topPart = Bitmap.createBitmap(originalImg, 0, 0, imgWidth, perPartHeight);
// 裁剪生成下半部分图片
Bitmap bottomPart = Bitmap.createBitmap(originalImg, 0, perPartHeight, imgWidth, perPartHeight);

// 将拆分后的图片设置到对应ImageView展示
ImageView ivTop = findViewById(R.id.iv_top_part);
ImageView ivBottom = findViewById(R.id.iv_bottom_part);
ivTop.setImageBitmap(topPart);
ivBottom.setImageBitmap(bottomPart);

注意事项

  • 大尺寸图片的裁剪逻辑请放在子线程执行,避免阻塞主线程触发ANR
  • 当确认原始Bitmap、拆分后的Bitmap不再使用时,及时调用recycle()方法回收内存,避免内存溢出
  • 如果需要沿垂直方向拆分图片为左右两部分,只需调整裁剪参数:单块宽度为原图宽度的1/2,高度与原图一致,对应修改createBitmap方法的起始坐标、宽高入参即可

内容的提问来源于stack exchange,提问作者Roshan Rabadiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:09:18