【发布时间】:2021-01-21 13:42:07
【问题描述】:
目前我正在使用 view.getDrawingCache() 现在获取绘图缓存 已弃用
view.setDrawingCacheEnabled(true);
Bitmap bitamp = Bitmap.createBitmap(view.getDrawingCache())
view.setDrawingCacheEnabled(false);
view.getDrawingCache() is deprecated in Android API 28
java 代码中的解决方案是出现错误Callback
@RequiresApi(api = Build.VERSION_CODES.O)
public static void getBitmapFormView(View view, Activity activity, Callback callback) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
int[] locations = new int[2];
view.getLocationInWindow(locations);
Rect rect = new Rect(locations[0], locations[1], locations[0] + view.getWidth(), locations[1] + view.getHeight());
PixelCopy.request(activity.getWindow(), rect, bitmap, copyResult -> {
if (copyResult == PixelCopy.SUCCESS) {
callback.onResult(bitmap);
}
}, new Handler(Looper.getMainLooper()));
}
无法解决回调
- 活动
- 窗口
- 处理程序
回调的超级类是什么?
【问题讨论】:
-
callback 是 PixelCopy.java Listener 内部的接口,用于观察 PixelCopy 请求的编译情况。