android - MyLinearLayout.getDrawingCache() 给出 NullPointerException

标签 android

编辑:

没关系,这样就可以了

TopRatedPage.setDrawingCacheEnabled(true);
TopRatedPage.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
TopRatedPage.layout(0, 0, TopRatedPage.getMeasuredWidth(), TopRatedPage.getMeasuredHeight()); 
TopRatedPage.buildDrawingCache(true);
Bitmap screenshot = Bitmap.createBitmap(TopRatedPage.getDrawingCache());
TopRatedPage.setDrawingCacheEnabled(false);

旧的:

我正在尝试从布局中截取屏幕截图,就像这样。

LinearLayout TopRatedPage = (LinearLayout)inflater.inflate(R.layout.toprated, null);
...
Bitmap screenshot;
TopRatedPage.setDrawingCacheEnabled(true);
screenshot = Bitmap.createBitmap(TopRatedPage.getDrawingCache()); // Caused by: java.lang.NullPointerException
TopRatedPage.setDrawingCacheEnabled(false);

知道我做错了什么吗?

谢谢!

编辑: 也试过这样,它不会抛出错误,但给出了一个空位图。

Bitmap screenshot = TopRatedPage.getDrawingCache();

最佳答案

试试这个,让我知道会发生什么......

LinearLayout TopRatedPage = (LinearLayout)inflater.inflate(R.layout.toprated, null);
Bitmap screenshot = Bitmap.createBitmap(LinearLayout .getWidth(), LinearLayout .getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(screenshot);
LinearLayout.draw(c);
imageView.setImageBitmap(screenshot);

如果可能的话,使用,

View captureView = null;
captureView = inflater.inflate(R.layout.toprated, null);
Bitmap screenshot = Bitmap.createBitmap(captureView.getWidth(), captureView.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(screenshot);
captureView .draw(c);
imageView.setImageBitmap(screenshot);

关于android - MyLinearLayout.getDrawingCache() 给出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278717/

相关文章:

java - 我需要设置一个变量,但我也需要它是最终的。

android - FirebaseJob 调度程序 : How to specify the number of retries in job with RETRY_POLICY_EXPONENTIAL

android - 将 bundle 中的多个 apk 合并为一个

java - 使用 GSON 和 Volley 在 Android 上显示 JSON 数据

android - Espresso 2.1 找不到我的测试

android - 整个 Activity 上的 OnTouchListener

android - 如何从安卓手机获取所有音乐文件的列表

Android MediaRecorder 在某些设备上不工作

android - stopService 不会停止我的服务.... 为什么?

android - 带 Lint 的StackOverflowError