小编Bar*_*rry的帖子

Android:OpenCV:imwrite总是返回false并且无法写入

这个代码以前工作但是在Android 4.2和OpenCV 2.4.4上它失败了,但我不知道为什么.任何人都可以为我解释它吗?

谢谢你的帮助.

巴兹

public void SaveImage (Mat mat) {
  Mat mIntermediateMat = new Mat();

  Imgproc.cvtColor(mRgba, mIntermediateMat, Imgproc.COLOR_RGBA2BGR, 3);

  File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
  String filename = "barry.png";
  File file = new File(path, filename);

  Boolean bool = null;
  filename = file.toString();
  bool = Highgui.imwrite(filename, mIntermediateMat);

  if (bool == true)
    Log.d(TAG, "SUCCESS writing image to external storage");
  else
    Log.d(TAG, "Fail writing image to external storage");
  }
Run Code Online (Sandbox Code Playgroud)

bool每次都会回来假.对于用户#0,文件路径/名称应该是("storage/emulated/0/Pictures/barry.png"),并且目录是在那里.

什么可以使imwrite返回false?

我可以将mat转换为bmp并自己保存(我在非OpenCV应用程序中执行其他操作)但是因为Highgui.imwrite在那里,并且这段代码在我写入2.4.0并在Android上测试时曾经工作过3.x,如果可以,我想用它.

非常感谢

巴兹

android opencv

14
推荐指数
2
解决办法
1万
查看次数

android:zxing条形码扫描成功但不从活动返回

我成功地使用zxing扫描代码,通过调用已安装的条形码阅读器的意图,但是当它发出蜂鸣声并指示良好的扫描时,我希望zxing活动将返回控制,以便我可以处理结果,但它坐在那里并尝试再次扫描.我必须按下后退按钮,然后它返回,我可以执行下一步.当我打电话给扫描仪时,是否有一些明显的标志?

任何建议都感激不尽.非常感谢.

这是我的代码:

public boolean onTouchEvent(final MotionEvent event) {

    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
    startActivityForResult(intent, 0);

    return true;
    }

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    super.onActivityResult(requestCode, resultCode, intent);

    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

            // Handle successful scan

            String s = "http://www.google.com/search?q=";
            s += contents;
            Intent myIntent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(s));
            startActivity(myIntent1);
            }
        else 
            if (resultCode == RESULT_CANCELED) {
                // Handle …
Run Code Online (Sandbox Code Playgroud)

android barcode-scanner zxing

12
推荐指数
2
解决办法
2万
查看次数

在Toast中使用字符串资源

我的代码是:

public static void ToastMemoryShort (Context context) {
    CharSequence text = getString(R.string.toast_memoryshort); //error here
    Toast.makeText(context, text, Toast.LENGTH_LONG).show();
    return;
    }
Run Code Online (Sandbox Code Playgroud)

但我得到"无法在Eclipse中对类型Context"中的非静态方法getString(int)进行静态引用.我正在准备本地化我的应用程序(将所有硬编码字符串转换为资源),所以我在哪里:

getString(R.string.toast_memoryshort)
Run Code Online (Sandbox Code Playgroud)

我之前有一个硬编码的字符串,很好.

我不确定这里发生了什么(Java noob).请问有人可以开导我吗?

非常感谢

巴兹

java android toast charsequence

10
推荐指数
2
解决办法
3万
查看次数

关联文件类型与Android应用程序失败

我很难将我的应用与特定的文件类型(.stl)相关联.保荐这里凯文没有任何效果.尝试从文件管理器启动文件时,我的应用程序不是建议的选项之一.

他的代码是:

<activity name="com.mycompany.MyActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:mimeType="application/pdf" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

(除非我有stl而不是pdf).我已经尝试了我能找到的这个主题的所有变化.

系统似乎没有意识到我的应用程序可用于打开此类文件.我做了些蠢事吗?

非常感谢任何建议.

编辑:

我有答案.基本上你必须声明你允许任何旧的mimetype并依赖文件扩展名.使用'正确'的mimetype(application/sla)不起作用.这有效:

<data android:scheme="file" 
      android:mimeType="*/*" 
      android:pathPattern=".*\\.stl" />
Run Code Online (Sandbox Code Playgroud)

现在,当我在Astro中选择一个文件时,我的应用程序被建议为打开这种文件的应用程序.

android android-intent android-activity

5
推荐指数
1
解决办法
2772
查看次数

Android:ProgressDialog失败

我正在尝试使用ProgressDialog并运行它.我的代码:

ProgressDialog dialog;

try {
  dialog = new ProgressDialog(context);
  dialog.setCancelable(true);
  dialog.setMessage("Loading ...");
  // set the progress to be horizontal
  dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  // set the bar to the default value of 0
  dialog.setProgress(0);

  // set the maximum value
  dialog.setMax(100);
  // display the progressbar
  dialog.show();
 }
catch (Exception e1)
 {
   e1.printStackTrace();
 }
Run Code Online (Sandbox Code Playgroud)

在下面我创建我的后台线程来加载一些东西并更新进度条,但它永远不会那么远.在堆栈跟踪中,我得到"无法添加窗口 - 令牌null不适用于应用程序",但对话框似乎(在调试器中)拥有所有正确的东西,它不是null,但我得到了这个错误.

任何人都可以对此发光吗?

android progressdialog

1
推荐指数
1
解决办法
1034
查看次数