小编Cod*_*ird的帖子

onCreate,onCreateOptionsMenu,onResume,执行的顺序是什么?

如果之前被问到这个问题,我很抱歉...无论如何,标题是什么,onCreateOptionsMenu何时执行?在onResume之前或之后?

在我的应用程序中,当活动首次运行/打开时,订单将是onCreate - > onResume - > onCreateOptionsMenu

但是如果我改变设备的方向,它会自动调用onDestroy,因此活动将被重新创建,在这种情况下,订单将是onCreate - > onCreateOptionsMenu - > onResume

我现在很困惑......任何人都可以对此作出解释吗?

android onresume oncreate android-activity oncreateoptionsmenu

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

什么是PixelFormat.RGBX_888

正如标题所说,任何人都知道什么是RGBX_8888像素格式?和RGBA_8888有什么区别?RGBA_8888是否提供alpha通道但RGBX_8888不提供?

不幸的是,android文档没有提供太多关于此的信息.

谢谢.

android pixelformat rgba

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

Android:具有预览回调功能的Camera Asynctask

我已经设法通过自定义滤镜(灰度,色调等)工作来获得相机预览.此自定义过滤器通过操作RGB数组然后将其绘制回画布然后在曲面视图中显示来应用预览回调.

这样做的缺点是我的FPS非常低.有了这个低FPS,如果我不使用Asynctask在后台线程中执行此操作,它在UI线程中做了太多工作.所以我尝试使用Asynctask进行相机操作(我的主要目的是让UI仍然能够完美地工作,即使是相机预览回调的繁重工作).

但即使在我使用Asynctask后,它也没有多大帮助.所以我想知道我的实现是错误的还是因为即使使用asynctask,UI线程仍会受到影响?

我的代码片段如下:

CameraActivity.java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("ACTIVITY_LIFECYCLE","CameraActivity: onCreate");
    setContentView(R.layout.camera_layout);
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
protected void onResume() {
    Log.d("ACTIVITY_LIFECYCLE","CameraActivity: onResume");
    if(preview == null){
        preview = new CameraPreviewAsync(this,camera);
        preview.execute();
    }
    super.onResume();
}

@Override
protected void onPause() {
    Log.d("ACTIVITY_LIFECYCLE","CameraActivity: onPause");
    if(preview!=null){
        preview.cancel(true);
        camera = preview.getCamera();
        if(camera!=null){
            camera.stopPreview();
            camera.setPreviewCallback(null);
            camera.release();
            camera = null;
            preview.setCamera(camera);
        }
        preview = null;
    }
    super.onPause();
}

@Override
public void onDestroy(){
    Log.d("ACTIVITY_LIFECYCLE","CameraActivity: onDestroy");
    super.onDestroy();
} 
Run Code Online (Sandbox Code Playgroud)

CameraPreviewAsync.java:

private final String TAG = "CameraPreviewAsync";

private CameraActivity camAct;
private …
Run Code Online (Sandbox Code Playgroud)

camera android surfaceview android-camera android-asynctask

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

iOS Swift中断键盘事件

我在拦截键盘事件时遇到问题。我已经将我的iOS与SteelSeries Free(游戏手柄控制器)相连,当连接到iOS时,它将被检测为蓝牙键盘。当我打开Notes时进行了测试,按下游戏手柄中的任何按钮都会写一个字母。

我需要拦截此按钮的按下并运行自己的功能,但不幸的是我无法这样做。

我一直在尝试使用GCController,但显然未将其检测为Game Controller对象。当我打印计数时,它显示为0。下面是我的代码。

let gameControllers = GCController.controllers() as! [GCController]
println("configureConnectedGameControllers count: \(gameControllers.count)")
Run Code Online (Sandbox Code Playgroud)

因此,我认为这是因为游戏手柄被检测为蓝牙键盘,因此未将其检测为游戏控制器。因此,我尝试改用UIKeyCommand。下面是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    var keys = [UIKeyCommand]()
    for digit in "abcdefghijklmnopqrstuvwxyz"
    {
        keys.append(UIKeyCommand(input:  String(digit), modifierFlags: .Command, action:  Selector("keyPressed:")))
        keys.append(UIKeyCommand(input: String(digit), modifierFlags: .Control, action:  Selector("keyPressed:")))
        keys.append(UIKeyCommand(input: String(digit), modifierFlags: nil, action:  "pressKey"))
    }
}

override func canBecomeFirstResponder() -> Bool {
    return true
}

func keyPressed(command: UIKeyCommand) {
    println("another key is pressed") //never gets called
}

func pressKey() {
    println("a key is pressed")
}
Run Code Online (Sandbox Code Playgroud)

但是即使使用上述实现,当我按下游戏手柄上的按钮时,控制台上也不会打印任何内容。

这使我感到困惑。因此,如果您对此有任何答案,请帮助我。提前致谢!

keyboard ios gamecontroller swift uikeycommand

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