我正在编写一个显示视频的应用程序。该应用程序是使用AndroidNDK和JNI编写的。我想使用OpenMAX。在OpenMAX示例中,它从Java检索表面,但我可以从哪里获得要渲染的表面?我只能通过applicationContext获得nativeWindow。例子:voidJava_com_example_nativemedia_NativeMedia_setSurface(JNIEnv*env,jclassclazz,jobjectsurface){theNativeWindow=ANativeWindow_fromSurface(env,surface);}但我没有表面。谢谢
我正在尝试在Android中构建动态壁纸,但当方向改变时应用程序崩溃了。尝试将Canvas锁定在表面支架上时看起来它正在崩溃,但我不确定我能做些什么来防止它。这是类:publicclassLiveWallpaperServiceextendsWallpaperService{publicvoidonCreate(){super.onCreate();}publicvoidonDestroy(){super.onDestroy();}publicEngineonCreateEngine(){returnnewMyWallpaperEngine();}classMyWallpaperEng
我是Android的新手,所以如果之前问过,请原谅!我正在玩一些相机代码(在线找到),我想在屏幕上显示/隐藏一些按钮。当用户触摸屏幕时,我希望它捕获图像。我的设置:1.主要Activity:publicclassCameraDemoextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main_inuse
我正在开发一款安卓游戏,我正在使用SurfaceView。我有一个每16毫秒调用一次的方法(我想要60fps)publicvoidmyDraw(SurfaceHolderholder){Canvasc=null;longstart=System.currentMillis();try{synchronized(holder){c=holder.lockCanvas();if(c!=null){c.drawColor(Color.GREEN);}}}finally{if(c!=null){holder.unlockCanvas(c);}}Log.i(TAG,"totaltime:"+(S
我正在尝试为Android应用程序创建2D游戏引擎。我关注了thistutorial,这对于创建全屏显示效果很好,但我不希望那样。我想让我的View占据屏幕的顶部2/3(或其他),并用标准的Android小部件(按钮、文本输入等)填充底部三分之一。我无法让它工作。我能得到的最好的是一个空白的白色屏幕。我尝试了很多排列组合,包括使用外部LinerLayout,然后将自定义SurfaceView嵌入嵌套的RelativeLayout中,并将Android小部件放入嵌套的LinearLayout中,但它不起作用。例如,当我觉得它应该是50%的SurfaceView,50%的TextView时
我的View是一堆普通的小部件和一个表面View。不知道为什么获取到SurfaceView的surfaceholder后,在holder上再次使用getSurface(),总是返回null。这是我的示例代码:publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.view);}@OverridepublicvoidonResume(){super.onResume();surface=(SurfaceView)findViewById(
我是android的新手,我遇到了一些问题......我使用SurfaceView来扩展我的类。在我的类里面,我无法获得SurfaceView的宽度和高度。它始终为0。我试图在整个屏幕(surfaceView)上滑动图像,但无法获取其宽度和高度。有什么建议吗?这是main.xml中SurfaceView的代码: 最佳答案 您可以尝试实现surfaceChanged方法(在调整表面大小时调用该方法,包括初始化时):http://developer.android.com/reference/android/view/SurfaceHo
我创建了一个自定义相机预览ViewCameraView,它扩展了SurfaceView,它还实现了SurfaceHolder.Callback接口(interface)。View与相机一起操作。当您打开View时,它会显示相机预览。在同一个屏幕上,还有两个按钮覆盖-“拍照”、“从图库中选择”。持有CameraView的Activity在onPause()和onResume()方法中释放并重新打开相机。如果我点击“从图库中选择”按钮,则会创建以下Intent:Intentintent=newIntent(Intent.ACTION_GET_CONTENT);intent.setType(
我想实现相机预览。为此,我有一个自定义ViewCameraViewextendsViewGroup,它在构造函数中以编程方式创建一个surfaceView。我有以下组件(为了简洁而高度简化):扫描仪fragment.javapublicViewonCreateView(..){//inflateviewandgetcameraView}publicvoidonResume(){//opencamera->setrotation->startPreview(inathread)->//setpreviewcallback->startdecodingworker}publicvoidon
我知道关于这个话题有很多问题,但是,我对所提供的答案仍然不完全满意。情况:我使用SurfaceHolder在另一个线程中通过绘图实现了SurfaceView,就像开发人员指南中建议的那样:http://developer.android.com/guide/topics/graphics/2d-graphics.html问题:有时我得到java.lang.IllegalStateException:Surfacehasalreadybeenreleased:调用SurfaceHolder.lockCanvas()时或调用SufraceHolder.unlockCanvasAndPost