小编Fel*_*lus的帖子

更新到Java 8后,Android会以错误的编码显示文本

我已将我的项目更新为SDK版本24和Java 8,并遇到了一个奇怪的编码问题.

由于一些奇怪的原因,Android将我的硬编码UTF-8字符串视为Windows-1251,因此文本是乱码.

像这样:

在此输入图像描述

这是我改变的:

compileSdkVersion 24
buildToolsVersion "24.0.2"

compileOptions {
    encoding = 'utf-8'
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 在Android Studio设置中更改了编码
  • 添加了compileOptions.encoding ='windows-1251'和compileOptions.encoding ='utf-8'
  • 添加了系统变量JAVA_TOOL_OPTIONS:-Dfile.encoding = UTF8

如果我恢复到Java 7,一切都还可以.

有任何想法吗?

encoding android utf-8 java-8 android-studio

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

OpenCV Haar Cascade xml格式

我对面部检测很感兴趣,我正在尝试将OpenCV用于我的Delphi应用程序.我稍后将使用Google Picasa进行面部识别.我发现了4种不同的基本haar级联用于检测正面:

haarcascade_frontalface_default.xml
haarcascade_frontalface_alt.xml
haarcascade_frontalface_alt2.xml
haarcascade_frontalface_alt_tree.xml
Run Code Online (Sandbox Code Playgroud)

"默认"haarcascade给出了太多误报并且根本不好,而'alt','alt2'和'tree'级联似乎产生了相当准确但有时不同的结果.'tree'级联倾向于产生比'alt'和'alt2'更多的假阴性,但也是最少的误报.

问题是这些haarcascade xml文件有两种不同的格式.

首先是这样的:https://github.com/Danukeru/FOUCAM/blob/master/haarcascade_frontalface.xml

第二个是这样的:https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_frontalface_alt.xml

如果我没有弄错,第二个被认为是"新"格式,但我的应用程序目前只能理解第一个"旧"格式."新"级联可能更准确,我想尝试一下.

有没有办法将新格式级联转换为旧格式?

或者我如何在我的应用程序中使用它们?

以下是一些代码(来自sites.google.com/site/josejp1/index/OCV.ZIP):

f1 := 'haarcascade_frontalface_alt.xml';
file1 := PChar(f1);
cascade_f := cvLoad(file1,0,0,0);
storage := cvCreateMemStorage(0);

s.width := 40;
s.height := 40;
faces := cvHaarDetectObjects(PCvArr(img), cascade_f, storage, 1.1, 3, 0, s);
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用'新'格式的xml级联文件,我会收到一个错误:

OpenCV GUI Error Handler
---------------------------
Unspecified error (The node does not represent a user object (unknown type?))
in function cvRead, ..\..\cxcore\src\cxpersistence.cpp(5061)
Run Code Online (Sandbox Code Playgroud)

我还没有在Delphi中找到任何带有新C++ API的现成示例,所以我将这个detectMultiScale示例(cvHaarDetectObjects的C++版本)转换为Delphi.它会在尝试加载级联时编译但崩溃.我是C++的新手,所以任何帮助都会受到赞赏.

zip存档中的Delphi 2010项目

unit Unit1;

interface …
Run Code Online (Sandbox Code Playgroud)

delphi opencv image-processing computer-vision face-detection

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

附加/分离与替换片段

在下面的一段代码中,使用detach/attach片段而不只是replacing它们有什么意义?

private void showFragment(String tag) {
  String oldTag = mSelectedTag;
  mSelectedTag = tag;
  final FragmentManager fm = getSupportFragmentManager();
  final FragmentTransaction ft = fm.beginTransaction();
  final Fragment oldFragment = fm.findFragmentByTag(oldTag);
  final Fragment fragment = fm.findFragmentByTag(tag);

  if (oldFragment != null && !tag.equals(oldTag)) {
    ft.detach(oldFragment);
  }

  if (fragment == null) {
    ft.replace(R.id.container, getContentFragment(tag), tag);
  } else {
    if (fragment.isDetached()) {
      ft.attach(fragment);
    }
  }
  ft.commit();
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能写这样的东西?

private void showFragment(String tag) {
  final FragmentManager fm = getSupportFragmentManager();
  final FragmentTransaction …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

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

如何确保ORMLite数据库中的唯一行,Android?

我的简单应用程序使用Jsoup解析站点,将数据发送到OrmLite数据库,然后在ListView中显示此数据.OrmLite数据库中的表具有简单的结构:自动生成的int主键_id和一些String字段(itemId,itemText,itemDate,itemRating).

我逐个添加项目(这是出于教育目的).如果我经常点击"添加"按钮,我会得到重复的条目.有没有办法保证只有唯一的项目(具有唯一的String itemId)将存储在数据库中?

java sqlite android ormlite

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