时间:2021-05-19
本文实例为大家分享了Android实现长截屏功能的具体代码,供大家参考,具体内容如下
1、MainActivity
2.ScreenShot
public class ScreenShot{ // 获取指定Activity的截屏,保存到png文件 public static Bitmap takeScreenShot(Activity activity) { // View是你需要截图的View View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap b1 = view.getDrawingCache(); // 获取状态栏高度 Rect frame = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); int statusBarHeight = frame.top; System.out.println(statusBarHeight); // 获取屏幕长和高 int width = activity.getWindowManager().getDefaultDisplay().getWidth(); int height = activity.getWindowManager().getDefaultDisplay() .getHeight(); // 去掉标题栏 // Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455); Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); view.destroyDrawingCache(); return b; } // 保存到sdcard public static void savePic(Bitmap b, String strFileName) { FileOutputStream fos = null; Log.d("TAG", "savePic() returned: " ); try { fos = new FileOutputStream(strFileName); if (null != fos) { b.compress(Bitmap.CompressFormat.PNG, 90, fos); Log.d("TAG", "savePic() returned: " + b.getHeight()); fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // 程序入口 截取当前屏幕 public static void shootLoacleView(Activity a, String picpath) { ScreenShot.savePic(ScreenShot.takeScreenShot(a), picpath); } /** * 保存bitmap到SD卡 * @param bitName 保存的名字 * @param mBitmap 图片对像 * return 生成压缩图片后的图片路径 */ @SuppressLint("SdCardPath") public static String saveMyBitmap(Bitmap mBitmap, String bitName) { String path = Environment.getExternalStorageDirectory()+"/"+bitName+".png"; File f = new File(path); try { f.createNewFile(); } catch (IOException e) { System.out.println("在保存图片时出错:" + e.toString()); } FileOutputStream fOut = null; try { fOut = new FileOutputStream(f); } catch (FileNotFoundException e) { e.printStackTrace(); } try { mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); } catch (Exception e) { return "create_bitmap_error"; } try { fOut.flush(); } catch (IOException e) { e.printStackTrace(); } try { fOut.close(); } catch (IOException e) { e.printStackTrace(); }// File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");// FileOutputStream out = null;// try {// out = new FileOutputStream(file);// mBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);// System.out.println("___________保存的__sd___下_______________________");// } catch (FileNotFoundException e) {// e.printStackTrace();// }// try {// out.flush();// out.close();// } catch (IOException e) {// e.printStackTrace();// } return path; // Toast.makeText(HahItemActivity.this,"保存已经至"+Environment.getExternalStorageDirectory()+"下", Toast.LENGTH_SHORT).show(); }}3.xml
<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/scroll" tools:context=".MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> </LinearLayout></ScrollView>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了Android实现截长图功能的具体代码,供大家参考,具体内容如下先看看手机自带的长截屏功能:机型:vivox9plus大胆推测实现逻辑:1:
本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下全屏截图:/***传入的activity是要截屏的activity
Android实现截屏功能的实例实现代码:publicclassScreenShot{//获取指定Activity的截屏,保存到png文件privatestat
本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下Demo在GitHub的地址:ScreenShootDemo在CS
oppor15x自带长截图功能,不需要下载第三方应用就能实现长截屏,把一整个页面作为一张图片保存下来,下面教大家如何实现长截图。oppoR15x滚动截屏教程1、