我正在使用一个SurfaceView和一个渲染线程来开发一个基于结构的游戏,比如LunarLander。
然而,我遇到了很多问题,在这里我想把它们全部指出。我希望任何想要开发游戏的人不再需要与之斗争。任何对android结构有更好了解的人都可以分享他们的经验,因为我仍然是android的新手,并且渴望学习:)
1不应多次调用函数thread.start()。
许多文章提到了在创建surface时创建线程,以便在活动暂停后使用以下方法再次渲染:
public void surfaceCreated(SurfaceHolder holder) {
// start the thread h
这是我的代码:
@TargetApi(9)
public void surfaceCreated(SurfaceHolder holder){
Log.e(TAG, "surfaceCreated");
mCamera = Camera.open(cameraID);
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Log.e(TAG
我正在使用camera API编写一个应用程序:显示预览,并拍照。第一个版本运行得非常好。在类预览中扩展SurfaceView实现SurfaceHolder.Callback
public void surfaceCreated(SurfaceHolder holder) {
// The Surface has been created, acquire the camera and tell it where
// to draw.
camera = Camera.open();
try {
camera.setPreviewDisplay(
我有一个GridView。我希望每个项目都是从SurfaceView派生出来的对象。我已经创建了一个扩展SurfaceView的类,以及一个适配器,它的getView()返回该类的一个实例。
我得到的只是每个网格项目的一个小黑方块。SurfaceView的draw()从未被调用(通过添加跟踪来显示),它的surfaceCreated()也没有被调用。
我如何做到这一点,让我可以在SurfaceView上画东西请?我认为问题的症结在于surfaceCreated()从未被调用过。为什么不行?
这是我的适配器:
public class LevelAdapter extends BaseAdapt
我的应用程序有一个将视图设置为SurfaceView的mainActivity。
应用程序已启动并正常显示。我按下主页按钮。-->当调用暂停时,Surfaceview被销毁,线程被正常终止。现在,当我再次点击我的应用程序时,OnResume not called,我看不到任何事情发生,事实上,手机卡住了。
每当我有一个新的表面时,我就创建一个新的线程。
我不确定为什么这段代码会有问题,但我主要怀疑surfaceView中的某些东西处理不当。
请帮帮我!!
@Override
public void surfaceCreated(SurfaceHolder arg0) {
// T
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
..........
.......
public void surfaceCreated(SurfaceHolder holder) {
........
..........
// I create camera object with camera.open
}
public void surfaceChanged(SurfaceHolder holder, int format,
为了做一些OCR操作,我使用和Android应用程序启动一个摄像头预览,但是我不能让它在Android5.0.1设备上工作。
我在surfaceCreated上有一个错误:
无法连接到照相机服务
下面是我的示例代码:
class OCRActivity : AppCompatActivity()
{
private var mCameraSource by Delegates.notNull<CameraSource>()
private var textRecognizer by Delegates.notNull<TextRecognizer>()
private