使用for循环递归累加其内部的子控件的高度:
private ScrollView scrollView;
scrollView = (ScrollView) findViewById(R.id.scrollview);
int h = 0;
for (int i = 0; i < scrollView.getChildCount(); i++) {
h += scrollView.getChildAt(i).getHeight();}
Bitmap bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,
Bitmap.Config.ARGB_8888);
// Bitmap bitmap = scrollView.getDrawingCache(true);
final Canvas c = new Canvas(bitmap);
scrollView.draw(c);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
final byte[] picture = stream.toByteArray();
if (bitmap != null && !bitmap.isRecycled()) {
bitmap = null;// 把原来的 bitmap.recycle().改成这个
}
代码如上即可给Scrollview进行截屏并转换为bitmap,和byte[]数组,你可以根据自己需要选择使用·········
分享到:
相关推荐
在Android开发中,有时我们需要实现一个功能,即用户可以截取ScrollView或ListView的内容,并将截图保存到设备的图库中。这个过程涉及到多个技术点,包括屏幕截图、滚动视图内容捕获、图像处理以及与系统图库的交互...
ScrollView是LinearLayout或RelativeLayout的一个子类,它可以包含一个或多个子视图,并允许用户垂直滚动浏览这些视图。要在一个Activity中使用ScrollView,我们通常会在XML布局文件中这样设置: ```xml ...
先看需求: 当内容已经超出了手机可显示的范围时,要截取这些所有的内容,从而生成所谓的”长截图”. 没什么难点,利用了webview的特点,和scrollview 的view的绘制,生成bitmap。 主要代码: //这是scrollview的 ...
在Android开发中,有时我们需要将View的显示内容截图并保存为Bitmap,以便进行分享或者其他图形处理操作。这个过程涉及到Android的视图系统、图形处理以及文件存储等多个知识点。以下将详细讲解如何实现这一功能。 ...
ScrollView 截屏截图是一种特殊的截屏方法,主要用于截取 ScrollView 的内容。下面是一个基本的 ScrollView 截屏截图方法: ```java public static Bitmap getScrollViewBitmap(ScrollView scrollView) { int h = ...
Android View 转 Bitmap 生成截图是一种常见的需求,特别是在分享图片和截屏功能中。下面将详细介绍三种不同的方法来实现 Android View 转 Bitmap 生成截图。 第一种方法:使用 DrawingCache 通过使用 View 的 ...
为了截取整个ScrollView的内容,我们需要遍历ScrollView的所有子视图,并逐个合并它们的截图。以下是一种可能的实现方式: 1. 首先,我们需要获取ScrollView的总高度。通过调用`ScrollView.getChildAt(0).getHeight...
"Android scrollView 截图长图生成" Android 中截图是一种常见的需求,特别是在社交媒体分享时,需要截取某个界面的所有内容。在这种情况下,我们需要截取 scrollView 的内容,生成长图,超出屏幕大小。但是,...
但是需要注意的是,这个过程可能会消耗较多的内存,特别是在处理大型视图或高分辨率设备时。因此,在实践中,应当注意管理Bitmap资源,防止内存泄漏。 在实际开发中,你可能会遇到一些挑战,例如View层级复杂、动画...
2. ScrollView截图:由于ScrollView可能会有滚动内容,所以我们需要遍历其子视图,并将它们组合成一张完整的截图。以下是一个示例: ```java ScrollView scrollView = findViewById(R.id.scroll_view); Bitmap ...
2. **滚动截屏**:对于滚动内容,我们需要监听`ScrollView`或`NestedScrollView`的滚动事件。在`onScrollChanged()`回调中,我们可以记录当前的滚动位置,并决定何时开始截图。 3. **创建Bitmap**:为每个屏幕截图...
在Android操作系统中,"长截屏"功能是用户获取屏幕多行内容的一种便捷方式,尤其在处理滚动视图如ListView、RecyclerView或ScrollView时特别有用。本文将深入探讨Android长截屏的相关知识点,包括如何实现这一功能,...
另外,针对ScrollView和ListView,由于它们可能包含滚动内容,我们需要确保截取整个视图。`convertViewToBitmap`方法可以将任意`View`转换为`Bitmap`,通过测量其大小,布局并构建缓存来实现。这个方法对ScrollView...
Android 实现截屏与截长图功能是 Android 开发中常见的一种功能,主要用于截取当前屏幕或长图,例如截取列表视图或滚动视图的内容。下面是相关知识点的总结: 1. 截屏的实现方式 在 Android 中,可以使用 View 的 ...
对于混合布局比如说:根 RelativeLayout 布局中有 ViewGroup+RelativeLayout 等子布局,可以分别测量他们的高度并生成Bitmap对象,然后拼接在一起即可。 ```java public static Bitmap mergeBitmap_TB(Bitmap ...
对于截取长图,由于单个屏幕无法容纳全部内容,我们需要滚动屏幕并多次截图,然后将这些图片拼接起来。以下是实现截长图的步骤: 1. 计算总高度:遍历所有需要截图的`View`,累加它们的高度。 2. 设置滚动监听:为`...