问题描述
//截图并保存 private String screenshotAndSave() {//Bitmap bitmap = ScreenShotUtils.getScreenshot(this);//mViewPager.setDrawingCacheEnabled(true);//mViewPager.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),//View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));//mViewPager.layout(0, 0, mViewPager.getMeasuredWidth(), mViewPager.getMeasuredHeight());//mViewPager.buildDrawingCache(true);Bitmap bitmap = getScreenViewBitmap(mViewPager);String fileName = cacheName + '_' + mViewPager.getCurrentItem() +ImageUtils.JPG_SUFFIX;ImageUtils.saveBitmap(bitmap, isCreateMode ? 30 : 100, ConstantValues.SCREENSHOT_PATH,fileName);//mViewPager.setDrawingCacheEnabled(false);return fileName; } private Bitmap getScreenViewBitmap(View v) {v.setDrawingCacheEnabled(true);v.buildDrawingCache(true);//creates immutable cloneBitmap b = Bitmap.createBitmap(v.getDrawingCache());v.setDrawingCacheEnabled(false); //clear drawing cachereturn b; }
问题解答
回答1:根据测试,重新对fragment中的photoview进行
mPhotoView.destroyDrawingCache();mPhotoView.setDrawingCacheEnabled(false);mPhotoView.setDrawingCacheEnabled(true);mPhotoView.buildDrawingCache();
即可,原因不清楚,求解答?