gpt4 book ai didi

android - 如何获取 View 的位图?

转载 作者:太空狗 更新时间:2023-10-29 14:45:13 25 4
gpt4 key购买 nike

<分区>

好的,所以我会尽力解释我的问题。我已经使用此代码获取了我的 FrameLayout 的“屏幕截图”

/**
* Function that takes a screenshot of the view passed and returns a bitmap for it.
*
* @param view {@link View}
* @return screenshot of the view passed
*/
public Bitmap screenShot(View view) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}

这是我的框架布局

<FrameLayout
android:id="@+id/frame_layout_picture"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<ImageView
android:id="@+id/photoImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter" />

<com.my.android.util.DrawCustomView
android:id="@+id/draw_custom_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>

DrawCustomView 用于在 photoImageView 上绘画。

现在我也有不同的 Activity 来裁剪图像。因此,我将此位图(使用 screenshot(view))保存在一个文件中,并将文件路径发送到此裁剪 Activity 。在我的裁剪 Activity 中,我使用 https://github.com/ArthurHub/Android-Image-Cropper库的 CropImageView 来裁剪图像。当我尝试裁剪发送到裁剪 Activity 的彩绘照片时,我得到了一个奇怪的裁剪,如下所示:

图像因裁剪过多而翻倍: https://drive.google.com/open?id=0B4jK5QX65b0ZSHdMTWIzZXluZXc

放大前: https://drive.google.com/open?id=0B4jK5QX65b0ZeUk3NUlGUHRSQ0E

这是裁剪 Activity 中正常图片的显示方式: https://drive.google.com/open?id=0B4jK5QX65b0ZNk9oSG1ZaGxYOVk

我还注意到,在正常情况下,裁剪范围仅限于图像大小,但在使用 screenshot() 进行编辑时,边界采用屏幕大小。

我已经预先测试了我的剪裁 Activity ,它适用于从相机发送的图像。我也试过发一张不是用screenshot功能截取的图片,在crop activity中效果很好。

我很乐意提供更多信息,非常感谢任何帮助...我是 android 开发的新手:)

编辑

此视频可能会更深入地说明问题 https://drive.google.com/open?id=0B4jK5QX65b0ZSUVFZDlQeTc4QnM

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com