Dv_*_*_MH 4 android surfaceview android-layout android-camera android-activity
我正在Android上构建一个应用程序,从相机中取出帧,处理它们,然后在surfaceView上显示帧,以及通过画布和drawbitmap等绘制SurfaceView.
只是要检查一下,SurfaceView和Bitmaps以及Canvases是最好的方法吗?我速度快了.
假设上面的答案是肯定的,问题是:我应该在哪里放置以下功能
camera_object.setPreviewCallback(new PreviewCallback()
public void onPreviewFrame(byte[] data, Camera camera){
Run Code Online (Sandbox Code Playgroud)
我应该将它放在onCreate()中还是应该将它放在surfaceCreated()或surfaceChanged()中?
我将mainactivity类声明如下:
public class MainActivity extends Activity implements SurfaceHolder.Callback, Camera.PreviewCallback
{
Run Code Online (Sandbox Code Playgroud)
在那个类中,Eclipse强制我为MainActivity类中的onpreviewframe创建一个覆盖函数,如下所示
public void onPreviewFrame(byte[] data, Camera camera){
}
Run Code Online (Sandbox Code Playgroud)
但它永远不会被召唤.我应该尝试使用此功能吗?使用它更好吗?或者它只是一个Eclipse的东西?
请指教
你是从应用程序调用setPreviewDisplay(),startPreview()和setPreviewCallback(this)吗?没有它,你将无法调用onPreviewFrame().实际上,如果您使用的是SurfaceView,则回调预览缓冲区是屏幕上显示的实际缓冲区的副本.因此,如果要显示这些复制的缓冲区,则需要创建一个新视图并覆盖它.这将是低效的.我建议您使用SurfaceTexture,并使用'onFrameAvailable'回调来获取帧,然后手动绘制和显示.可以在默认Android Camera App 的PanoramaActivity代码中找到此示例.
| 归档时间: |
|
| 查看次数: |
10048 次 |
| 最近记录: |