【发布时间】:2018-07-16 10:52:35
【问题描述】:
我正在尝试将整个 CardView 转换为图像,然后我想使用不同的应用程序共享它。
问题
cardView.setDrawingCacheEnabled(true);
cardView.measure(View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED));
cardView.layout(0,0, cardView.getMeasuredWidth(), cardView.getMeasuredHeight());
cardView.buildDrawingCache(true);
bitmap = Bitmap.createBitmap(cardView.getDrawingCache());
cardView.setDrawingCacheEnabled(false);
String path = MediaStore.Images.Media.insertImage(DetailedActivity.this.getContentResolver(),bitmap,"quote",null);
uri = Uri.parse(path);
问题是我正在将 cardview 转换为位图,但是从位图获取 uri 时它返回空路径。所以在转换 Uri 时它给出了 NULL POINTER EXCEPTION。
以下是我提供的权限列表。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"
tools:ignore="ProtectedPermissions" />
卡片视图 XML 如果我给 CardView 一个定义的 CardView 的高度和宽度的硬编码值,它正在工作,但是当我使用时
android:layout_width="match_parent"
android:layout_height="match_parent"
上面显示的代码给出了 NULL_POINTER_EXCEPTION。
查询
1.我怎样才能让它工作?
2.有没有其他方法可以做到这一点?
【问题讨论】:
-
宽度和高度分别返回 1158 和 304。
-
我猜你弄错了。在每种情况下,我都会得到这些值,但在每种情况下,我也会得到路径 NULL。
标签: android android-intent bitmap