首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“android.view.SurfaceHolder android.view.SurfaceView.getHolder()”在SurfaceView中的空对象引用上

android.view.SurfaceHolder是一个接口,它允许开发者访问SurfaceView的底层绘图表面。SurfaceView是Android中用于在后台线程中绘制图形的一种特殊视图。

android.view.SurfaceView.getHolder()是SurfaceView类的一个方法,用于获取SurfaceHolder对象。SurfaceHolder是SurfaceView的内部类,它提供了控制SurfaceView绘图表面的方法。

在SurfaceView中的空对象引用上指的是当SurfaceView还没有被创建或者已经被销毁时,调用getHolder()方法返回的SurfaceHolder对象为空。这种情况下,如果尝试对空对象引用进行操作,会导致空指针异常。

为了避免空对象引用,可以在使用SurfaceHolder对象之前,先判断它是否为空。例如:

代码语言:java
复制
SurfaceView surfaceView = findViewById(R.id.surfaceView);
SurfaceHolder holder = surfaceView.getHolder();
if (holder != null) {
    // 对holder进行操作
} else {
    // 处理holder为空的情况
}

SurfaceHolder对象可以用于控制SurfaceView的绘图表面,包括设置绘图格式、添加回调方法、锁定/解锁画布等。通过SurfaceHolder对象,开发者可以在SurfaceView中进行自定义绘图、视频播放、相机预览等操作。

腾讯云提供了一系列与云计算相关的产品,包括云服务器、云数据库、云存储、人工智能等。具体推荐的腾讯云产品和产品介绍链接地址可以根据具体需求和场景进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android之相机开发

android应用相机功能,一般有两种:一种是直接调用系统相机,一种自己写相机。...第二种: (1)首先我们要自己创建一个照相界面,必须考虑用什么控件显示照相机预览效果,显然android已经帮我们做好了选择,那就是SurfaceView 控制SurfaceView需要一个surfaceHolder...,他是系统提供一个用来设置SurfaceView一个对象,可以通过surfaceView.getHolder()这个方法来获得....那么这是就需要在那个参数jpeg 方法里面进行处理了,那个方法data参数,就是相片数据。...,但是我们程序上,也可以做一些处理, 向上面的那些,因为我直接把surfaceView当做整体布局,就可能出现屏幕被拉开了,不是很好看,所以这时,就可以不要把 surfaceView弄成整体布局,

77210

【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( Java 层获取 Surface | 传递画布到本地 | 创建 ANativeWindow )

: Surface 画布可以 SurfaceView SurfaceHolder 获取 //绘制图像 SurfaceView SurfaceView surfaceView; // SurfaceView...surfaceHolder.getSurface() ; ② 将 Surface 对象传递到 Native 层 : SurfaceHolder.Callback 接口 surfaceChanged...Surface 画布 : 这里 Surface 画布从 SurfaceView 获得 , SurfaceHolder.Callback 监听方法获取 SurfaceHolder 及 Surface...实现 Surface 传递方法 : Native 层实现 Java 定义方法 ; extern "C" JNIEXPORT void JNICALL Java_kim_hsl_ffmpeg_Player_native...ANativeWindow 创建 : Native 层实现 Java 定义本地方法 native_set_surface ( ) , 该方法传入了 Surface 对象作为参数 ; 该 Native

76210

Android图片识别应用详解

最近由于参加一个小小创意比赛,用安卓做了一个小小图片识别应用,主要是通过拍照识别图片中的菜品,还有对象位置查找东西。...1、界面 我采用了一个SurfaceView用来显示摄像头预览画面,重写了一个SurfaceView来进行红色方框还有菜品名字绘制。图片是一个ImageVIew,相当于拍照按钮功能。...private String result_content; //服务器返回结果 private SVDraw surfaceView; //需要绘制surfaceview private TextView...); List<String values = new ArrayList<String (); try { obj = new JSONObject(result_content); //json对象...(); surfaceView.drawLine(keys,values); tv.setText("搭配很赞哦"); } //onCancelled方法用于取消执行任务时更改UI @Override

3.9K41

Android多媒体录制--MediaRecorder视频录制

surfaceView.getHolder().setKeepScreenOn(true); 3、现在看“开始录制”监听事件 ----3.1 创建MediaRecorder对象...这样图像就是正常显示了,这里设置是观看保存后视频角度 recorder.setOrientationHint(90); ----3.4 设置文件存储路径,这里简陋了,实际开发需要判断是否有外部存储...android.media.MediaRecorder; 5 import android.os.Bundle; 6 import android.os.Environment; 7 import android.view.SurfaceHolder...isRunning){ 57 try { 58 //创建MediaRecorder对象 59 recorder...,用于给刚接触MediaRecorder音频录制coder学习,存在一些Bug和不足,各位coder可以继续拓展 不足: 1、只有当点击“开始录制”时候SurfaceView组件才可以看到摄像头拍摄预览

2.6K70

Android开发笔记(五十六)摄像头拍照

图像数据可以接口中onPictureTaken方法获得,通常我们只关心最后一个JPG图像数据,所以前面的接口参数可以直接传null。...预览视图SurfaceView/预览持有者SurfaceHolder SurfaceView是Android一种特殊视图,它拥有独立绘图表面,即它不与其宿主页面共享同一个绘图表面。...由于拥有独立绘图表面,因此SurfaceView界面就可以一个独立线程中进行绘制,我们称之为渲染线程。因为它不占用主线程资源,所以一方面可以实现复杂而高效UI,另一方面也会及时响应用户输入。...: 获取预览视图对象。...该方法用于关联SurfaceView和SurfaceHolder,它与Camera.setPreviewDisplay最终联合完成SurfaceView与Camera关联,即摄像头画面展示预览界面上

1.8K20

Android实现拍照和录制视频功能

本文实例为大家分享了Android实现拍照和录制视频功能具体代码,供大家参考,具体内容如下 文档Camera 要使用Camera,首先我们先看一下文档是怎么介绍。...相对于其他绝大多数类,文档对Camera介绍还是比较详尽,包含了使用过程中所需要步骤说明,当然,这也表明了它在实际使用繁琐。...如果有必要,修改上面所返回Camera.Parameters对象,并调用setParameters(Camera.Parameters) 进行设置 4....你应用应该在onPause()被调用时就进行释放,onResume()时再重新open()。 上面就是文档关于使用Camera进行拍照介绍了。接下来说一下我使用场景。...android.hardware.Camera; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.SurfaceHolder

3.1K30

使用Android MediaPlayer播放媒体文件

这个方法有多个重载版本,适应于不同情况,既可以对使用文件路径作为参数,也可以使用描述文件位置Uri作为参数 prepare() 开始播放之前调用这个方法完成媒体文件准备工作 start() 开始播放媒体文件文件...* setDisplay方法接收是一个SurfaceHolder * 对象所以先要得到我们布局文件...* SurfaceViewSurfaceHolder对象,之后 * 设置长和宽,最后设置视频输出源 */...因为模拟器没有媒体文件,所以用真机进行测试,单击“开始”按钮: ? 单击“暂停”按钮: ? 单击“停止”按钮之后又变成了第一幅图。...接下来媒体文件路径输入控件EditText输入一个视频绝对路径: ? 成功播放出来了视频!

2.6K10

Android手电筒兼容各个手机与版本

写手电筒APP之前,当然已经参考market上很多手电筒APP,还有网上如何实现手电筒功能各种源码。不管是源码还是market上APP,总结了几点问题。...1.我下载market上所有手电筒APP都是通过Camera打开闪光灯方式来实现,但是大部分APP在打开Camera时没有进行异常处理工作,也没有任何提示,如果当其他程序使用Camera时,...并且返回或点Home后没有释放Camera,这时启动相应手电筒APP就会出现崩溃或者手电筒功能已经失效,这种用户体验用户是不能接受!...2,网上很多Camera打开闪光灯实现手电筒源码,而且原理都是一样,当然这些代码并没有错误,但存在问题是这些源码在有的手机版本上能够实现相应功能,另外手机版本上就不起作用了,CSDN资源大部分手电筒...我自己实现这个手电筒很简单,没有任何UI界面,进入APP后就直接照明,实现原理就2点: 1.跟其他手电筒APP一样,用Camera打开闪光灯开始照明 2.将当前屏幕背光调节为最亮状态,退出时恢复之前背光值

78031
领券