如何将Listview数据裁剪到android中的滚动位置?

Posted

技术标签:

【中文标题】如何将Listview数据裁剪到android中的滚动位置?【英文标题】:How to crop Listview data upto scrolling position in android? 【发布时间】:2013-10-02 05:39:35 【问题描述】:

我有一个包含很多项目的列表视图...对于该列表视图,我需要将数据裁剪到滚动位置..下面是清晰的图像..

!

在上面的图像中包含有很多项目的列表视图,当裁剪坐标被拖动时,列表视图将滚动,当我们停止拖动时,列表视图图像将裁剪为 htat 位置..我真的不知道如何实现这个概念...

我搜索了很多但没有找到解决方案..甚至我不知道如何将裁剪功能作为自定义实现,是否可以裁剪列表视图数据或者我应该转换为图像??

谁能给我建议..因为我在我的申请中遇到了这个位置..

提前致谢

【问题讨论】:

您可以转换位图中的任何布局。然后您可以管理裁剪功能。通过这种方式,您可以将“此功能”分成两个简单的部分。 感谢您的评论。首先,如何将列表视图转换为位图?@SharpDeveloper public static Bitmap getBitmapFromView(View view) Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);画布画布 = 新画布(returnedBitmap);可绘制 bgDrawable =view.getBackground(); if (bgDrawable!=null) bgDrawable.draw(canvas);否则 canvas.drawColor(Color.WHITE); view.draw(画布);返回返回位图; 这会起作用,但列表视图的可见项目只会在位图中。我想你的需求也是这个。 【参考方案1】:

使用此方法并创建列表视图位图,然后使用相机的默认裁剪功能。可能有助于解决您的问题。

public static Bitmap getBitmapFromView(View view) 
        Bitmap returnedBitmap = Bitmap.createBitmap(100, 600,Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(returnedBitmap);
        Drawable bgDrawable =view.getBackground();
        if (bgDrawable!=null) 
            bgDrawable.draw(canvas);
        else 
            canvas.drawColor(Color.WHITE);
        view.draw(canvas);
        return returnedBitmap;
    

【讨论】:

这段代码没有返回整个列表视图位图...只是改变了可见项 是的,它只会返回可见的项目。您只能裁剪可见的那部分。如果你将使用列表视图,你将永远不会得到不可见的项目。 Listview 只处理可见的项目。 我不确定,但您应该使用滚动视图而不是 ListView。您将获得超出可见区域的物品。 好的,很好,我知道我在 webview 上写了所有视图。通过这个我捕获了整个 webview,我得到了一个位图……我将该位图设置为 imageview显示 webview 中的所有视图...通过这个我如何裁剪到 imageview 的滚动位置? IN 换句话说,只需从 googleplay 看到我想要的 PhotoCrop 应用程序......请建议我如何在照片裁剪应用程序中实现自定义裁剪?

以上是关于如何将Listview数据裁剪到android中的滚动位置?的主要内容,如果未能解决你的问题,请参考以下文章

Android java:如何正确将排序数据发送到listView?

Android:将数据库中的数据绑定到 ListView 中的 CheckBox?

如何将listview项目链接到android中的不同活动?

我如何从firebase检索数据到android listview顶部[重复]

使用android中的类将数据绑定到listview

如何将数据添加到 listView 的自定义 BaseAdapter - Android