用手指调整 ImageView 的高度

Posted

技术标签:

【中文标题】用手指调整 ImageView 的高度【英文标题】:Resize height of ImageView by finger 【发布时间】:2013-06-11 06:22:27 【问题描述】:

我有一个显示相机预览的活动,以及最后一张拍摄的图像的 ImageView。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_
            android:layout_>

<ImageView
        android:id="@+id/stitch_preview"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:scaleType="center"
        android:visibility="gone"/>

<SurfaceView
        android:id="@+id/camera_preview"
        android:layout_
        android:layout_
        android:layout_below="@+id/stitch_preview"/>

现在 ImageView 固定为128dp 高度。很难通过在 ImageView 上向下拖动手指来调整此视图的大小。

我一直在寻找各种提示,但我发现的一切都与拉出隐藏视图有关。我似乎找不到调整已经可见视图大小的示例。

Tutorial for doing a pull-down "view" in android?

How to resize a custom view programmatically?

【问题讨论】:

【参考方案1】:

假设您的 ImageView 是可见的,以下步骤可能会对您有所帮助-

1) 缩放您的 ImageView 或使用 LayoutParams 使用多点触控实际调整您的 imageview 的大小(您可以根据您的标准范围调整 Imageview 的大小)。

2) 使用以下代码捕获您的图像视图

ImageView iv=(ImageView)findViewbyId(R.id.ImageView1)

....

iv.setDrawingCacheEnabled(true);
                // Set the layout manually to after resizing or pinch zoom
                iv.layout(0, 0, x, y);
                // Set the quality to high
                iv.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
                // Build the cache, get the bitmap and close the cache
                iv.buildDrawingCache(true);
                Bitmap bmBarChart = gv.toBitmap();

上面的代码会返回给你调整大小的位图图像。

3)现在保存此图像并将其设置到您的 ImageView

我之前已经调整了可见视图的大小,但我的要求与您略有不同

【讨论】:

以上是关于用手指调整 ImageView 的高度的主要内容,如果未能解决你的问题,请参考以下文章

用手指IOS调整UIImageView的大小

imageView添加阴影和边框

ImageView系列:ImageView会不会自动调整高度?

自调整大小表格单元格中的 ImageView 在应用 Aspect Fit 之前使用图像的高度

使用 UIImageView 调整单元格高度

ImageView 调整视图边界不起作用