在不移动叠加视图的情况下裁剪和缩放图像,而是在 ImageView 中移动图像

     2023-02-25     77

关键词:

【中文标题】在不移动叠加视图的情况下裁剪和缩放图像,而是在 ImageView 中移动图像【英文标题】:Crop and Zoom Image without Moving Overlay View Instead Move Image in ImageView 【发布时间】:2014-08-05 11:51:33 【问题描述】:

您好,我想在不移动叠加视图的情况下裁剪图像,而不是移动图像。

图像可以四处移动。我想在黑色边框内裁剪并保存如下所示的突出显示区域。

我有ImageViewandroid:scaleType="matrix"

这是我的布局代码

<RelativeLayout
    android:id="@+imageEdit/rl_ScaleImage"
    android:layout_
    android:layout_
    android:layout_below="@+imageEdit/Topbar"
    android:visibility="visible" >

    <ImageView
        android:id="@+imageEdit/imageView1"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:scaleType="matrix" />

    <View
        android:id="@+imageEdit/viewTop"
        android:layout_
        android:layout_
        android:layout_alignParentTop="true"
        android:background="#99000000" />

    <View
        android:id="@+imageEdit/view_scaledImage"
        android:layout_
        android:layout_
        android:layout_above="@+imageEdit/viewBottom"
        android:layout_below="@+imageEdit/viewTop"
        android:background="@drawable/rounded_corner_small" />

    <View
        android:id="@+imageEdit/viewBottom"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:background="#99000000" />
</RelativeLayout>

ImageViewOnTouchListener。图片可以放大或缩小,也可以在ImageView1中移动。查看view_scaledImage 是我要裁剪和保存的区域。我该怎么做?

【问题讨论】:

那么问题出在哪里? @Mann 如何裁剪view_scaledImage所涵盖的内容 How to crop an image in android?的可能重复 我也检查过,但这无法为我提供解决方案。请建议如何获得突出显示的坐标。你能提供一些代码吗 @Raj 你得到解决方案了吗?其实我也在寻找相同的..如果解决了,你能给我解决方案吗?提前致谢。 【参考方案1】:

最后我通过结合 Cropper 库和 PhotoView 库得到了解决方案。

https://github.com/rameshkec85/AndroidCropMoveScaleImage

【讨论】:

嗨 Ramesh Akula,我正在使用上面的库,它工作正常,但我面临一个问题。缩放时位图图像移动到叠加层之外?请帮助我提前致谢【参考方案2】:

您可以使用cropimage 库。将此行添加到您的清单文件中:

 <activity android:name="eu.janmuller.android.simplecropimage.CropImage" />

从图库或相机中选择图像并调用此函数:

public void runCropImage(String path) 
    Intent intent = new Intent(this, CropImage.class);
    intent.putExtra(CropImage.IMAGE_PATH, path);
    intent.putExtra(CropImage.SCALE, true);
    intent.putExtra(CropImage.ASPECT_X, 2);//change ration here via intent
    intent.putExtra(CropImage.ASPECT_Y, 2);
    startActivityForResult(intent, REQUEST_CODE_CROP_IMAGE);//final static int 1

在你的onActivityResult:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) 
    // gallery and camera ommitted
    case REQUEST_CODE_CROP_IMAGE:
        String path = data.getStringExtra(CropImage.IMAGE_PATH);
        // if nothing received
        if (path == null) 
            return;
        
        // cropped bitmap
         Bitmap bitmap = BitmapFactory.decodeFile(path);
        imageView.setImageBitmap(bitmap);
        break;
    default:
        break;
    

这个库也有缩放功能。检查我提到的链接中的示例

【讨论】:

让我给它一个机会【参考方案3】:

这是获取任何视图相对于当前窗口的坐标的方法:

public Rect getViewPositionRelative(View v) 
   //Locate on screen
   int[] location = new int[2];
   view.getLocationInWindow(location); //change to getLocationOnScreen(location) for an absolute positioning

   Rect rect = new Rect();
   rect.left = location[0];
   rect.top = location[1];
   rect.right = rect.left + v.getWidth();
   rect.bottom = rect.top + v.getHeight();
   return rect;

使用此方法,您可以获得 ImageView 和叠加视图的面积,然后使用一些基础数学计算裁剪面积;)

【讨论】:

如何在不使用内部相机裁剪的情况下裁剪图像

】如何在不使用内部相机裁剪的情况下裁剪图像【英文标题】:Howtocropanimagewithoutusinginternalcameracropping【发布时间】:2016-09-0604:15:38【问题描述】:我想在imageview中显示一个裁剪后的图像,该图像显示为预览,在显示为预览后,... 查看详情

SwiftUI - 缩放、缩放和裁剪图像

...nktorepository编辑。我正在使用SwiftUI,因此无法访问“裁剪视图”。我使用手势而不是ScrollView来捕获图像的缩放级别和偏移量(x和y)。我无法返回根据这些因素正确裁剪的图像。似乎SwiftUI本身可能是一个因素。也许在确定偏移... 查看详情

如何在不实际缩放的情况下更改视图缩放值?

】如何在不实际缩放的情况下更改视图缩放值?【英文标题】:HowtoChangeaViewsScaleValuewithoutActuallyScalingit?【发布时间】:2011-11-0305:08:36【问题描述】:我想知道是否可以在不实际缩放的情况下实际更改UIViews缩放值?例如,如何更... 查看详情

在 UIView 内缩放图像而不改变边界?

...ds?【发布时间】:2013-11-0213:04:48【问题描述】:是否可以在不改变UIView边界的情况下缩放UIView内的图像?(也就是说,仍然将图像裁剪到UIView的边界,即使图像的缩放比例大于UIView。)我在不同的SO帖子上发现了一些代码,可以... 查看详情

如何在不保存原始图像的情况下保存图像 URL 的裁剪图像? (在 Rails 中使用 Paperclip 或其他插件)

】如何在不保存原始图像的情况下保存图像URL的裁剪图像?(在Rails中使用Paperclip或其他插件)【英文标题】:HowtosavecroppedimageofanimageURLwithoutsavingtheoriginalimage?(inRailsusingPapercliporotherplug-ins)【发布时间】:2010-12-0300:05:47【问题描... 查看详情

C#如何在不使用大量内存的情况下裁剪图像? [复制]

】C#如何在不使用大量内存的情况下裁剪图像?[复制]【英文标题】:C#Howtocropanimagewithoutusinglotsofmemory?[duplicate]【发布时间】:2012-11-2315:23:05【问题描述】:可能重复:Howtocrophugeimage有个问题问如何裁剪图片here我已经阅读并使用... 查看详情

在不使用 div 的情况下在 html 中裁剪图像

】在不使用div的情况下在html中裁剪图像【英文标题】:Croppingimageinhtmlwithoutusingdiv【发布时间】:2015-06-1820:41:09【问题描述】:我正在处理电子邮件集成。我知道div标签在各种平台(一些Outlook版本、一些网络邮件等)上都没有得... 查看详情

如何在不裁剪的情况下调整 WooCommerce 图像的大小?

】如何在不裁剪的情况下调整WooCommerce图像的大小?【英文标题】:HowtoresizeWooCommerceimageswithoutcroppingthem?【发布时间】:2019-10-0808:06:22【问题描述】:我一直在使用WooCommerce插件开发一些电子商务。每次我向媒体库添加新图片时... 查看详情

使用多个图像视图的图像裁剪帮助

...:2020-06-1303:56:05【问题描述】:这是我的问题...是否可以在不更改主图像的情况下加载图片、调用裁剪活动并将裁剪的图像加载到不同的图像视图上?我有3个图像视图。我的imageview1用于主图像加载,我的imageview2用于裁剪活动的... 查看详情

iOS5 中的图像移动和缩放问题

】iOS5中的图像移动和缩放问题【英文标题】:ImagemoveandscaleissueiniOS5【发布时间】:2011-10-1810:07:20【问题描述】:最近我将我的iphone升级到了iOS5。升级到iOS5后,图像上通常的移动和缩放功能不起作用(UImagePickerController)。在iOs5... 查看详情

iOS - 如何在不调整大小和重新定位按钮视图的情况下更改按钮图像

】iOS-如何在不调整大小和重新定位按钮视图的情况下更改按钮图像【英文标题】:iOS-howtochangebuttonimagewithoutresizingandrepositioningthebuttonview【发布时间】:2014-01-1916:55:33【问题描述】:我目前有一个包含2个按钮的视图-视图大小为32... 查看详情

使用 Python - 如何在不超过原始图像大小的情况下调整裁剪图像的大小以满足纵横比

】使用Python-如何在不超过原始图像大小的情况下调整裁剪图像的大小以满足纵横比【英文标题】:UsingPython-Howtoresizeacroppedimagetomeetanaspectratiowhilenotexceedingoriginalimagesize【发布时间】:2022-01-2216:52:21【问题描述】:我正在使用对象... 查看详情

如何在不裁剪行/子视图的情况下为 tableView 的大小调整设置动画?

】如何在不裁剪行/子视图的情况下为tableView的大小调整设置动画?【英文标题】:HowdoyouanimatetheresizingofatableViewwithoutitsrows/subviewsgettingclipped?【发布时间】:2009-10-1306:25:16【问题描述】:编辑:我最初就一般视图调整大小提出了... 查看详情

如何在不更改 C#.Net 中的分辨率的情况下裁剪图像?

】如何在不更改C#.Net中的分辨率的情况下裁剪图像?【英文标题】:HowcanIcropimagewithoutchangingitsresolutioninC#.Net?【发布时间】:2009-05-1310:14:58【问题描述】:我做了一个小程序,把大图分割,取一部分。当我导入由“MicrosoftPaint”... 查看详情

如何移动和缩放图像[关闭]

】如何移动和缩放图像[关闭]【英文标题】:HowtomoveandscaleanImage[closed]【发布时间】:2012-10-0809:44:24【问题描述】:我的android应用程序中有一个Imageview。我想移动和缩放图像。我还想裁剪图像的选定部分(就像照片/图像编辑器一... 查看详情

UIScrollView 在不正确的点上缩放

】UIScrollView在不正确的点上缩放【英文标题】:UIScrollViewzoomingonincorrectpoint【发布时间】:2016-09-0313:49:23【问题描述】:我有一个带有图像的UIScrollView,并且该图像位于容器视图中。视图层次结构如下所示:UIScrollViewUIViewUIImageVie... 查看详情

可以在不修改源 FLA 的情况下更改 Flash 文本和图像吗?

】可以在不修改源FLA的情况下更改Flash文本和图像吗?【英文标题】:CanFlashtextandimagesbechangedwithoutmodifyingsourceFLA?【发布时间】:2013-12-0719:35:27【问题描述】:一般来说,假设我创建了一个小而简单的FLA动画,其中仅包含文本“... 查看详情

Android ImageView 将较小的图像缩放到具有灵活高度的宽度,而不会裁剪或扭曲

...,从不回答(至少不是以可重复的方式)。我有一个图像视图,其中的图像比视图小。我想将图像缩放到屏 查看详情