首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android之surfaceview画图

    从前面Android应用程序与SurfaceFlinger服务的关系概述和学习计划和Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划这两个系列的文章可以知道,每一个在...C++层的Surface类的实现以及作用可以参考前面Android应用程序与SurfaceFlinger服务的关系概述和学习计划这个系列的文章。         ...对象,用来描述应用程序窗口的顶级视图,这一点可以参考前面Android应用程序窗口(Activity)的视图对象(View)的创建过程分析一文。...android.os.Parcel _data = android.os.Parcel.obtain();                   android.os.Parcel _reply = android.os.Parcel.obtain...理解上述三个结论对理解Android应用程序窗口的实现框架以及WindowManagerService服务的实现都非常重要。

    2K100

    Android SurfaceView游戏开发示例

    当我们需要开发一个复杂游戏的时候,而且对程序的执行效率要求很高时,View类就不能满足需求了,这时必须用SurfaceView类进行开发。...例如,对速度要求很高的游戏时,View类就不能满足需求了,这时必须使用SurfaceView类进行开发。例如,对速度要求很高的游戏,可以使用双缓冲来显示。...游戏中的背景、人物、动画等都需要绘制在一个画布(Canvas)上,而SurfaceView可以直接访问一个画布,SurfaceView 是提供给需要直接画像素而不是使用窗体部件的应用使用的。...每个Surface创建一个Canvas对象(但属性时常改变),用来管理View和Surface上的绘图操作。 ...this); setContentView(gameView); } } GameSurfaceView public class GameSurfaceView extends SurfaceView

    1K20

    Android播放端绘制-SurfaceView还是GLSurfaceView

    )两种模式; GPU加速:GLSurfaceView的效率是SurfaceView的30倍以上,SurfaceView使用画布进行绘制,GLSurfaceView利用GPU加速提高了绘制效率; View...following features: Manages a surface, which is a special piece of memory that can be composited into the Android...总结 除了上述区别外,SurfaceView通用性更好,GLSurfaceView渲染更细腻,如果想让普通的SurfaceView渲染效果更好,可以加抗锯齿效果,不过抗锯齿效果会有一定的性能消耗,硬解码设置...surface模式的话,直接用普通的SurfaceView。...一般兼容性比较好的播放器,会同时支持SurfaceView和GLSurfaceView两种模式供用户根据实际场景选择,以大牛直播SDK(Github)的Android平台RTSP和RTMP播放端为例:

    1.6K20

    【Android 应用开发】View 与 SurfaceView 区别

    SurfaceView 在子线程刷新 UI : SurfaceView 中可以创建新的子线程 , 并在该子线程中刷新 UI ; 性能 资源 操作 1...., View 可能出现刷新卡顿的情况 ; ③ 操作简单 : View 符合 Android 组件操作模式 , 是标准的 Android 控件 , 使用和操作比较简单 ; 2....SurfaceView 组件 : ① 刷新性能 : SurfaceView 刷新性能较高 ; ② 受资源影响较小 ; ③ 操作复杂 : 但是控制起来比较复杂 , 需要在其中创建线程 , 并需要处理主线程与该线程之间的同步问题...View : Android 中的标准组件 , 用于显示视图 , 内部提供 Canvas 画布 , 可以调用 Canvas 绘图函数绘制界面 , 可以设置触摸事件 等 ; View 组件绘图操作必须在主线程中进行...SurfaceView : SurfaceView 是 View 的子类 , 绘图的过程中使用了双缓冲机制 , 绘图效率很高 , 其功能在内部可以创建线程 , 并在线程中以极高的频率 ( 5 ~ 100

    63920

    Android SurfaceView onTouchEvent配合OpenCV显示

    以前我们整体的介绍了利用SurfaceView调用系统的Camera显示图像,并且通过NDK OpenCV的方式进行图像处理,今天这篇我们就是来介绍一下,在SurfaceView中点击显示图像中的区域进行定位...最后完整的代码会在整个系列都做完后上传到GItHub中。 ? 视频演示 ? 视频说明 通过SurfaceView中点击事件其实相对来说很简单,只要重写onTouchEvent事件就可以。...但是看过以前SurfaceView调用camera的朋友应该记得,我们还除了要旋转相机角度,还要对画布的大小对显示的图像进行缩放,所以本章的重点是解决我们点击的图像怎么对应到上面视频中显示出来的红点位置...代码实现 程序框架我们就不在重新搭建了,用的还是《Android利用SurfaceView显示Camera图像爬坑记(六) -- 用OpenCV进行Canny边缘检测》那个Demo。...src, false, bitmap_config); AndroidBitmap_unlockPixels(env, bmp); return _bitmap; } 这样我们的SurfaceView

    1.1K10

    android SurfaceView绘制实现原理解析

    在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。...在前面Android控件TextView的实现原理分析一文中提到,普通的Android控件,例如TextView、Button和CheckBox等,它们都是将自己的UI绘制在宿主窗口的绘图表面之上,这意味着它们的...在前面Android应用程序与SurfaceFlinger服务的关系概述和学习计划和Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划这两个系统的文章中,我们主要分析了...Android应用程序窗口是如何通过SurfaceFlinger服务来绘制自己的UI的。...需要深入理解LayerBuffer的绘制和合成操作的,可以参考Android应用程序与SurfaceFlinger服务的关系概述和学习计划和Android系统Surface机制的SurfaceFlinger

    5.8K131

    Android利用SurfaceView显示Camera图像爬坑记(三)

    前言 前一章《Android利用SurfaceView显示Camera图像爬坑记(二)》我们已经利用SurfaceTexture通过生成的Bitmap图片用canvas画出显示,最后最后留了个小尾巴,就是显示的图像并没有全屏...最初觉得全屏显示的话,那我直接获取屏幕的宽度和高度,在生成图片的方法里面把图片的宽高重新定义一下就行了,然后我就先在定义了屏幕宽高的两个参数 ? 接着在构造函数中加入获取屏幕宽高的方法 ?...生成图片的nv21ToBitmap的方法参数中我们传入了canvas的宽和高 ? 然后运行的结果直接就变下面这样了 ?...从我们输出的日志看,PreviewSize的宽和高与canvas的宽和高前后不对,如下图 ? 所以我就又宽高的输出倒过来试了一下,结果还是一样的,所以这个方法放弃。...最后我就在想,即然我的图片已经生成好了,那是不是画的时候照的画布大小画就可以了,开始的思路应该是不对的,于是又各种查找,终于找到一个文章,如下 ? 看完后我也是。。。。。

    1.3K20

    SurfaceView的那点事儿

    View之孪生兄弟-SurfaceView 概述 Android系统中提供了View进行绘图处理,View可以满足大部分的绘图需求,但是在某些时候却力不从心,特别是进行一些开发的时候。...---- SurfaceView和View的区别 SurfaceView和View的区别: View主要适用于主动更行的情况,而SurfaceView适用于被动更新,例如频繁的刷新。...---- SurfaceView的使用 SurfaceView的使用虽然比View要复杂,但是SurfaceView在使用时有一套使用的模板代码,大部分的SurfaceView绘图操作都可以套用这样的模板代码来进行编写...在自定义的SurfaceView的构造方法中,需要对SurfaceView进行初始化。...---- 整个SurfaceView的模板代码如下: import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet

    80530

    surfaceView+MediaPlayer的问题

    的背景图片是  sv.setBackgroundResource(R.drawable.bg_finish); //改变SurfaceView的背景图片 4.卡顿问题之一,卡顿是超级严重的问题:如果是prepare...mediaPlayer还没有来得及释放,也有可能是surfaceView还没有完成销毁,总之存在两个对象,肯定就失败了,有人说这个原始Android设备的问题,如果这个设备使用的操作系统把第三方厂商给修改了...surfaceView的相关概念: MediaPlayer主要用于播放音频,它是没有提供输出图像的输出界面,这时我们就用到了SurfaceView控件,将它与MediaPlayer结合起来,就能达到了视频的输出了...这样理解: SurfaceView它用于显示,SurfaceHolder就是用于用来管理这个显示的SurfaceView对象的,但在SurfaceHolder是怎么样去管理这个对象的呢?...这样就达到了管理SurfaceView的目的。

    2.1K20

    surfaceview详解

    1.概念       SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。...这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。...2.实现方法 1)实现步骤     a.继承SurfaceView     b.实现SurfaceHolder.Callback接口 2)需要重写的方法 public void surfaceChanged...几个需要注意的方法: abstract void addCallback(SurfaceHolder.Callback callback);   // 给SurfaceView当前的持有者一个回调对象。...4)总结整个过程   继承SurfaceView并实现SurfaceHolder.Callback接口 ----> SurfaceView.getHolder()获得SurfaceHolder对象 --

    1.9K90
    领券