我试图在我的Android OpenCV应用程序中显示定时器在以下代码中实现的结果:
case ImageManipulationsActivity.VIEW_MODE_MEDIAN:
capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA);
if (mRgbaInnerWindow == null|| mGrayInnerWindow == null)
CreateAuxiliaryMats();
long start = System.currentTimeMillis();
Imgproc.medianBlur(mRgbaInnerWindow, mIntermediateMat, 25);
Core.convertScaleAbs(mIntermediateMat, mIntermediateMat, 1./10, 0);
Core.convertScaleAbs(mIntermediateMat, mRgbaInnerWindow, 10, 0);
long end = System.currentTimeMillis();
long elapse = end - start;
Toast.makeText(ImageManipulationsView.context.getActivity(), "" + elapse + "ms is used
to process", Toast.LENGTH_LONG).show();
我得到一个错误"上下文无法解决或不是一个字段"我做错了什么?我的计时器对吗?我如何显示它的结果?
@Sahil Mahajan Mj现在我有一个错误行:
Toast.makeText(ImageManipulationsView.this, "" + elapse + "ms is used to",
Toast.LENGTH_LONG).show();
从我在开始粘贴的代码。错误是" Toast类型中的makeText方法不适用于参数"如果有帮助的话,我的应用程序是对OpenCV4Android包中的图像操作示例的修改
@Blundell我已经将上下文变量更改为public,当我从应用程序菜单中选择medianBlur时,整个应用程序崩溃。
如果你在谈论这个,
Toast.makeText(ImageManipulationsView.context.getActivity(), "" + elapse + "ms is used
to process", Toast.LENGTH_LONG).show();
你只需要像这样设置Activity的Context,
ImageManipulationsView.this
如果存在其他错误,则需要将代码张贴在实际错误所在的位置。只有这样我才能编辑我的答案。
在Android设计标准中,你的代码有点错误。
但是看起来你不能从这个类中"看到"context
变量。
在ImageManipulationsView
类中,将context
变量更改为public
public Context context;