Android截屏的几种方法

您所在的位置:网站首页 安卓滚动截屏软件叫什么 Android截屏的几种方法

Android截屏的几种方法

2024-07-13 11:43| 来源: 网络整理| 查看: 265

第一种:5.0 之后开放了截屏的方法

if (Build.VERSION.SDK_INT >= 21) { startActivityForResult(((MediaProjectionManager) getSystemService("media_projection")).createScreenCaptureIntent(),1); } else { Log.e("TAG", "版本过低,无法截屏"); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_MEDIA_PROJECTION: { if (resultCode == -1 && data != null) { parseData(data); } } } } private void parseData(Intent data){ MediaProjection mMediaProjection = (MediaProjectionManager).getSystemService( Context.MEDIA_PROJECTION_SERVICE).getMediaProjection(Activity.RESULT_OK,data); ImageReader mImageReader = ImageReader.newInstance( getScreenWidth(), getScreenHeight(), PixelFormat.RGBA_8888,1); VirtualDisplay mVirtualDisplay = mMediaProjection.createVirtualDisplay("screen-mirror", getScreenWidth(), getScreenHeight(), Resources.getSystem().getDisplayMetrics().densityDpi, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mImageReader.getSurface(), null, null); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { Image image = mImageReader.acquireLatestImage(); // TODO 将image保存到本地即可 } }, 300); mVirtualDisplay.release(); mVirtualDisplay = null; }

第二种:使用 decorView

public static Bitmap capture(Activity activity) { activity.getWindow().getDecorView().setDrawingCacheEnabled(true); Bitmap bmp = activity.getWindow().getDecorView().getDrawingCache(); return bmp; } public static Bitmap shotActivity(Activity ctx) { View view = ctx.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bp = Bitmap.createBitmap(view.getDrawingCache(), 0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); view.setDrawingCacheEnabled(false); view.destroyDrawingCache(); return bp; }

长截屏 ScrollView 截屏

public static Bitmap shotScrollView(ScrollView scrollView) { int h = 0; Bitmap bitmap = null; for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3