我想使用相机预览进行图像识别.出于我的目的,我需要尽可能高的预览分辨率(同时,向用户显示预览).
我创建了一个Preview类,扩展了SurfaceView并将PreviewSize设置为1280x720.我添加了一个PreviewCallBack来获取实时图像:
camera = Camera.open();
parameters = camera.getParameters();
parameters.setPreviewSize(1280,720);
camera.setParameters( parameters);
byte[] b = new byte[camera.getParameters().getPreviewSize().width *
camera.getParameters().getPreviewSize().height *
ImageFormat.getBitsPerPixel(camera.getParameters().getPreviewFormat()) / 8];
camera.addCallbackBuffer(b);
camera.setPreviewCallbackWithBuffer(new CameraPreviewCallback());
try {
camera.setPreviewDisplay(this.getHolder());
camera.startPreview()
}
Run Code Online (Sandbox Code Playgroud)
我的字节数组b是1382400字节,我的CameraPreviewCallback.onPreviewFrame()函数接收那些1382400字节 - 但只有第一个497664字节包含数据(匹配768x432分辨率(HTC Desire)).
我在不同的设备上进行了测试,显示分辨率为800x480(HTC Desire,LG Optimus 3D,三星Galaxy S2,三星Galaxy Tab,......).我的代码唯一适用的设备是HTC Desire HD.
有谁知道如何作为字节数组获得完整的720p分辨率?"Something"似乎降低了预览分辨率以适应智能手机显示屏.
问候
Joern
对于iPhone应用程序,我需要创建一个rsa密钥对,将其存储在密钥链中并检索公钥.
幸运的是,Apple发布了一个Crypto Exercise Sample,我可以找到所需的一切(类SecKeyWrapper,函数generateKeyPair和getPublicKeyBits).
但是在尝试使用这些函数之后,我总是为不同密钥对的公钥获得相同的输出(而不是不同密钥对的不同公钥位).
我首先通过调用generateKeyPairWithKeySizeInBits创建一个密钥对(这似乎工作正常),然后我用getPublicKeyBits和NSLog 提取公钥位...
- (void) generateKeyPairWithKeySizeInBits:(int)bits withPublicIdentifier:(NSString *)publicIdentifier andPrivateIdentifier:(NSString *)privateIdentifier
{
NSLog(@"begin generating key...");
OSStatus status = noErr;
NSMutableDictionary* privateKeyAttr = [[NSMutableDictionary alloc] init];
NSMutableDictionary* publicKeyAttr = [[NSMutableDictionary alloc] init];
NSMutableDictionary* keyPairAttr = [[NSMutableDictionary alloc] init];
NSData* publicTag = [publicIdentifier dataUsingEncoding:NSUTF8StringEncoding];
NSData* privateTag = [privateIdentifier dataUsingEncoding:NSUTF8StringEncoding];
SecKeyRef publicKey = NULL;
SecKeyRef privateKey = NULL;
[keyPairAttr setObject:(__bridge id) kSecAttrKeyTypeRSA forKey:(__bridge id) kSecAttrKeyType];
[keyPairAttr setObject:[NSNumber …Run Code Online (Sandbox Code Playgroud) 将我的XCode更新到4.4版之后,似乎无法从我的设备中检索应用程序数据.
在Xcode 4.3(以及所有previuos版本)中,我通过组织者(管理器 - >设备 - >"设备" - >应用程序 - >"应用程序" - >下载)下载了我的应用程序数据(如我创建的SQLite数据库和文件).
使用Xcode 4.4,当我尝试从沙箱下载文档时,我收到错误("权限被拒绝").
有什么新东西(可能是新设置吗?)我必须更改才能再次从我的设备获取应用程序数据?
我发布了一个包含2个Build Flavors的应用程序:一个"普通"版本,包括广告和无广告版本.
在Google Play开发者控制台中,如果它使用广告,您现在必须标记您的应用.这适用于普通版本,但无广告版本使用与专业版相同的依赖关系(尤其是Google Play服务).因此,当我将此版本设置为无广告时,我会收到警告,因为找到了ad-libs.
是否可以根据gradle构建风格更改依赖项?
的build.gradle:
android {
(...)
productFlavors {
lite {
signingConfig signingConfigs.Release
versionCode 14
versionName '1.1.5'
buildConfigField "boolean", "IS_PRO", "false"
}
pro {
applicationId 'com.example.exampleadfree'
signingConfig signingConfigs.Release
targetSdkVersion 21
versionCode 14
versionName '1.1.5'
buildConfigField "boolean", "IS_PRO", "true"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.2'
compile 'com.google.android.gms:play-services:6.1.+'
compile project(':libraries:SharedItems')
compile 'com.android.support:recyclerview-v7:21.0.2'
}
Run Code Online (Sandbox Code Playgroud) 在下面的代码中,如果我在for循环中使用sysout语句然后代码执行并在条件满足后进入循环内部但如果我不在循环内使用sysout语句然后无限循环继续进行而不进入if条件内部即使如果条件满足..任何人都可以请帮助我找出确切的原因.只是一个sysout语句使if条件成为真.为什么会这样?
代码如下: -
class RunnableDemo implements Runnable {
private Thread t;
private String threadName;
RunnableDemo( String name){
threadName = name;
System.out.println("Creating " + threadName );
}
public void run() {
System.out.println("Running " + threadName );
for(;;)
{
//Output 1: without this sysout statement.
//Output 2: After uncommenting this sysout statement
//System.out.println(Thread.currentThread().isInterrupted());
if(TestThread.i>3)
{
try {
for(int j = 4; j > 0; j--) {
System.out.println("Thread: " + threadName + ", " + j);
}
} catch (Exception e) {
System.out.println("Thread …Run Code Online (Sandbox Code Playgroud) 在我的iOS App中,我使用了一个UItableViewController
...
[self presentViewController:vc animated:YES completion:nil];
...
Run Code Online (Sandbox Code Playgroud)
现在我在tableview中点击一行后,我想解雇我的tableviewcontroller:
#pragma mark UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self dismissViewControllerAnimated:true completion:^(void) {
NSLog(@"dismissed");
}];
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题:dismissViewControllerAnimated按预期工作,但我必须点击该行2次.我第一次点击该行没有任何反应.
到目前为止的观察:
似乎即使我只点击一次,完成块也将被"安排".但解雇不会发生.
有谁知道是什么导致这个问题?
我正在开发大量使用Rest Services的android应用。
为了进行开发和调试,我在本地(在笔记本电脑上)运行Rest服务器。在家里,我有静态IP地址,因此,可以在我的build.gradle中放入一个静态字符串。
但是,如果我在其他地方工作,则始终必须检查笔记本的IP地址并编辑build.gradle。
现在我很好奇:是否可以将当前的本地IP地址自动插入到build.gradle中?
android {
...
buildTypes {
debug {
...
resValue "string", "host_name", "192.168.0.102" // <--- should be set automatically
}
release {
...
resValue "string", "host_name", "example.com/rest/"
}
}
Run Code Online (Sandbox Code Playgroud) android ×3
gradle ×2
ios ×2
iphone ×2
objective-c ×2
build.gradle ×1
dependencies ×1
interrupt ×1
ios5 ×1
java ×1
preview ×1
resolution ×1
rsa ×1
uitableview ×1
xcode4.4 ×1