如何将大图像的部分裁剪到 ImageView
Posted
技术标签:
【中文标题】如何将大图像的部分裁剪到 ImageView【英文标题】:How do I crop portions of large image to an ImageView 【发布时间】:2016-06-19 15:55:48 【问题描述】:假设我有一张看起来像左边的图片... 每个标志是 30x20px。
如何显示区域 0,60 到 30,80?我也希望以后能够如此高档。
【问题讨论】:
【参考方案1】:您可以使用此方法从您的偏移量创建另一个位图
/**
* Returns an immutable bitmap from the specified subset of the source
* bitmap. The new bitmap may be the same object as source, or a copy may
* have been made. It is initialized with the same density as the original
* bitmap.
*
* @param source The bitmap we are subsetting
* @param x The x coordinate of the first pixel in source
* @param y The y coordinate of the first pixel in source
* @param width The number of pixels in each row
* @param height The number of rows
* @return A copy of a subset of the source bitmap or the source bitmap itself.
* @throws IllegalArgumentException if the x, y, width, height values are
* outside of the dimensions of the source bitmap, or width is <= 0,
* or height is <= 0
*/
public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height)
return createBitmap(source, x, y, width, height, null, false);
另一个选项是创建一个自定义 ImageView,然后覆盖 onDraw()
方法以从您的偏移量在 Canvas
上绘制位图
使用Canvas
类的这个方法
public void drawBitmap(@NonNull Bitmap bitmap, float left, float top, @Nullable Paint paint)
【讨论】:
以上是关于如何将大图像的部分裁剪到 ImageView的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python中的平移矩阵将小图像的特定坐标放置到大图像的特定坐标