Android ScrollView 长截屏
来源:互联网 发布:网络与新媒体概论 编辑:程序博客网 时间:2024/05/16 07:19
前言:
有时候我们会f需要看到微博,朋友圈,微信等带滑动页面的长截屏图片,即要分享一个界面的所有内容,可是内容太多,超过了屏幕的大小,简单的截屏已经满足不了案子的需要。下面代码实现对滑动页面包括超出屏幕显示区域的截屏。
代码如下:
public class ScreenShot { private static Bitmap getBitmapByView(ScrollView scrollView) { int h = 0; Bitmap bitmap = null; for (int i = 0; i < scrollView.getChildCount(); i++) { h += scrollView.getChildAt(i).getHeight(); } bitmap = Bitmap.createBitmap(scrollView.getWidth(), h, Bitmap.Config.RGB_565); final Canvas canvas = new Canvas(bitmap); scrollView.draw(canvas); return bitmap; } private static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); int options = 100; // 循环判断如果压缩后图片是否大于100kb,大于继续压缩 while (baos.toByteArray().length / 1024 > 100) { // 重置baos baos.reset(); image.compress(Bitmap.CompressFormat.JPEG, options, baos); options -= 10; } ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray()); Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null); return bitmap; } // 保存到sdcard private static void savePic(Bitmap b, String strFileName) { FileOutputStream fos = null; try { fos = new FileOutputStream(strFileName); if (null != fos) { b.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // 程序入口 public static void shoot(ScrollView a) { ScreenShot.savePic(compressImage(getBitmapByView(a)), "sdcard/shoot.png"); }}
Activity 中调用:
final OnClickListener mOnClickListener = new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
switch (view.getId()) {
case R.id.accuweather_img:
ScreenShot.shoot(settings_scrollview);
break;
...
APP UI:
长截屏:
0 0
- Android ScrollView 长截屏
- scrollview--android
- Android--ScrollView
- Android ScrollView
- android-ScrollView
- Android ScrollView
- Android ScrollView 嵌套 ScrollView 滑动
- Android长截屏-- ScrollView,ListView及RecyclerView截屏
- 在android中ScrollView嵌套ScrollView
- 在android中ScrollView嵌套ScrollView
- [Android实例] [版主原创]ScrollView嵌套ScrollView
- [Android实例] [版主原创]ScrollView嵌套ScrollView
- 在android中ScrollView嵌套ScrollView解决方案
- 【ScrollView】Android ScrollView监听滑动事件
- android ScrollView 中嵌套Scrollview 怎么办?
- 【Android】【ViewGroup】【ScrollView】ScrollView的一些细节
- Android ScrollView用法
- android之ScrollView
- Node.js express不是内部或外部命令,也不是可运行的程序或批处理文件
- entity framework(EF) 直接执行数据库命令并返回DataTable
- 我所理解的性能测试是什么?
- iOS安全攻防:越狱后Hack必备的命令与工具
- java常用的排序算法的思想以及实现
- Android ScrollView 长截屏
- beego1.6版本服务器部署运行模板文件报错问题
- 数据结构的一些复习点
- linux进程状态浅析
- 消息提示类控件之PopupWindow(悬浮框)的基本使用
- 聊聊Web App、Hybrid App与Native App的设计差异
- 总结2
- Redis on Windows
- 邮箱APP个别汉字丢失问题解决