发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133636.html原文链接:https://javaforall.cn
Surface的官方介绍:Handle onto a raw buffer that is being managed by the screen compositor,Surface是一个raw buffer的句柄,通过它在raw buffer上进行绘制,可以通过Surface获得一个Canvas。
SurfaceView就是在Window上挖一个洞,它就是显示在这个洞里,其他的View是显示在Window上,所以View可以显式在 SurfaceView之上,你也可以添加一些层在SurfaceView之上。
本文对小窗视频播放进行了详细的研究,针对几种实现方案进行了深入的对比分析,进而给出实现小窗视频播放的最优解。
Android系统中提供了View进行绘图处理,View可以满足大部分的绘图需求,但是在某些时候却力不从心,特别是进行一些开发的时候。
本文实例为大家分享了SurfaceView播放视频发送弹幕,并实现滚动歌词,供大家参考,具体内容如下
最近刚换了三星的Note9,深度体验了一下Bixby的语音功能,觉得挺不错的,而且上周的人工智能大会上,分布屏幕两边的分别是科大讯飞和腾讯提供的服务:讯飞听见和腾讯同传。两者的表现也都是让人眼前一亮。
最近在写视频播放器的时候用到了SurfaceView和MediaPlayer,在各个功能完成后,竟得意忘形,感觉自己又get到新技能,可以嘚瑟几天了,直到前两天被人问到:
首先对于《赛贝尔曲线》不是很了解的童鞋,请自觉白度百科、google等等... 为了方便偷懒的童鞋,这里给个《贝赛尔曲线》百科地址,以及一段话简述《贝赛尔曲线》: 《贝赛尔曲线》白度百科快速地址:http://baike.baidu.com/view/4019466.htm 贝塞尔曲线又称贝兹曲线或贝济埃曲线,一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋; 上面这一段话其实就“线段像可伸缩的皮筋”这一句比较重要,也很容易理解; 至
SurfaceView是View的子类,使用的方式与任何View所派生的类都是完全相同的,可以像其他View那样应用动画,并把它们放到布局中。 SurfaceView封装的Surface支持使用本章前面所描述的所有标准Canvas方法进行绘图,同时也支持完全的OpenGL ES库。 使用OpenGL,你可以再Surface上绘制任何支持的2D或者3D对象,与在2D画布上模拟相同的效果相比,这种方法可以依靠硬件加速(可用的时候)来极大地提高性能。 对于显示动态的3D图像来说,例如,那些使用Google Earth功能的应用程序,或者那些提供沉浸体验的交互式游戏,SurfaceView特别有用。它还是实时显示摄像头预览的最佳选择。
1.概念 SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。 2.实现方法 1)实现步骤 a.继承SurfaceView b.实现SurfaceHolder.Callback接口 2)需要重写的方法
Surface 就是“表面”的意思,可以简单理解为内存中的一段绘图缓冲区。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”, 这句话包括下面两个意思:
本文实例为大家分享了Android SurfaceView画板操作的具体代码,供大家参考,具体内容如下
我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:Android 仿真翻页效果.zip我的博客写的比较乱,如果本篇文章没有看懂,
播放视频或者渲染其他的动画的时候,有两个View组件可供选择,SurfaceView和TextureView,GLSurfaceView是SurfaceView是子类,这儿还是归类到SurfaceView中吧。
import android.app.Activity; import android.content.Context; import android.graphics.*; import android.os.Bundle; import android.view.*; public class Mian extends Activity { /** Called when the activity is first created. */ @Override pub
在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行绘制。又由于不会占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,另一方面又不会导致用户输入得不到及时响应。在本文中,我们就详细分析SurfaceView的实现原理。 在前面Android控件TextView的实现原理分析一文中提到,普通的Android控件
可以看到这个这个自定义 View 的功能还是很丰富的,无论是设置画笔的形状、颜色、粗细,还是进行重置和保存,该有的 API,基本都已经实现了。有需要的读者直接 点击这里 ,希望帮忙点个 star,哈哈哈。
本文实例为大家分享了SurfaceView视频弹幕展示的具体代码,供大家参考,具体内容如下
这是游戏的主界面的编写部分 首先,由于是游戏,所以必须提到一个组件SurfaceView。在这里我们自定义一个GameView继承自SurfaceView
实现一个温度变化曲线 该曲线的数据时不断加载的,如下图。 支持手势,当不断向左拖动时,图形曲线要随着拖动移动,并在拖动到边界时需要加载更多数据。
1.黑屏原因:可能是由于surfaceView还没有创建完成就播放,肯定不行,所以必须在surfaceViewCreated里面才能播放
大家好,本文是 iOS/Android 音视频专题 的第六篇,该专题中 AVPlayer 项目代码将在 Github 进行托管,你可在微信公众号(GeekDev)后台回复 资料 获取项目地址。
实例代码: import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.os.Bundle; import android.view.Menu; import andr
1. View 主线程刷新 UI : View 的更新是在 UI 主线程中进行更新 , 如果更新中执行耗时操作 , 会阻塞主线程 , 甚至出现 ANR 异常 ;
首先创建一个SurfaceViewSign类,继承SurfaceView类,继承 SurfaceHolder.Callback和Runnable接口,代码如下:
文章目录 一、自定义 View 组件 ( Kotlin ) 二、自定义 SurfaceView 组件 ( Kotlin ) 自定义组件构造函数统一在 constructor(context: Cont
本文实例为大家分享了Android双重SurfaceView实现弹幕效果的具体代码,供大家参考,具体内容如下
HolderSurfaceView.java package com.lyc; import android.graphics.PixelFormat; import android.view.SurfaceView; public class HolderSurfaceView { private HolderSurfaceView() { } private SurfaceView mSurfaceView; private static HolderSurfaceView mHolderSu
The Android framework APIs provides a set 2D drawing APIs that allow you to render your owncustom graphics onto a canvas or to modify existing Views to customize their look and feel.When drawing 2D graphics, you’ll typically do so in one of two ways
下面就贴上一个小程序代码,主要运用SurfaceView来实现在屏幕上画一个圆,你可以通过按方向键和触摸屏幕来改变圆的位置
当我们需要开发一个复杂游戏的时候,而且对程序的执行效率要求很高时,View类就不能满足需求了,这时必须用SurfaceView类进行开发。
《Android群英传》读书笔记 (3) 第六章 Android绘图机制与处理技巧 + 第七章 Android动画机制与使用技巧
Android手机屏幕,不管是分辨率还是大小,五花八门。。。要想在不同的屏幕上保持绘图的准确性,需要对屏幕有充分的认识.
需求:视频通话界面,两个surfaceView一个显示本端的视图,另一个显示对端的视图,由于显示比例的问题总会存在一个覆盖另一个的问题,为保证用户体验,规定小的覆盖大的视图上面,且点击小的视图可切花为大图视图居中,达到两个视图切花的功能。简单写一个demo完成功能的测试需求,为了较少文章的篇幅,视图的内容用回执矩形代替(实际开发中显示的是本地照相采集的数据和对端经过opgl处理的数据)
上文主要介绍了BufferQueue的设计思想和内部实现,本文将介绍对于BufferQueue的常用封装和使用例子。
在一堆VideoEditor的技术文章中插入一篇播放器的文章,稍微有点违和,但是本文还是有必要讲讲的,因为它能给我们一点启示:原来播放器不是被动接收数据,还能主动进攻。我做播放器也很久了,今天不想谈播放器的性能优化和内部原理,谈谈播放器的渲染框架。
这里的人脸检测并非人脸识别,但是却可以识别出是否有人,当有人时候,你可以将帧图进行人脸识别(这里推荐Face++的sdk),当然我写的demo中没有加入人脸识别,有兴趣的朋友可以追加。face++
要理解Android的图形架构,我们需要先理解window的概念。维基百科中给window的定义是:Window是图形用户界面(GUI)系统中显示器上一个单独的视图区域(可以想象你电脑桌面上一个个窗口)。
Android 提供了view进行视图的绘制,可以满足大部分的会图需求,但在有些时候却是心有余而力不足。我们知道,view通过刷新来绘制视图。android系统通过vsync信号来进行屏幕的绘制。刷新的时间间隔为16毫秒。如果在16毫秒内完成了索要刷新的绘制操作,那么在视觉效果上就不会产生卡顿的感觉。如果逻辑操作过多,频繁刷新就会造成界面的卡顿。
在内存中创建图片的副本 直接载入的bitmap对象是仅仅读的。无法改动。要改动图片仅仅能在内存中创建出一个一模一样的bitmap副本。然后改动副本
作者 | 豆沙包67 地址 | https://www.jianshu.com/p/a7596afb1aa1 声明 | 本文是 豆沙包67 原创,已获授权发布,未经原作者允许请勿转载 概念定义 ContextImpl:Context实现类。 PhoneWindow:Window唯一实现类。Window是一个抽象概念,是添加到WindowManager的根容器。 ViewRootImpl:ViewRootImpl是View的根,它控制了View的测量和绘制,同时持有WindowSession通过Binder
最近由于参加一个小小的创意比赛,用安卓做了一个小小的图片识别应用,主要是通过拍照识别图片中的菜品,还有对象位置查找的东西。之前没有做过安卓,都是拼拼凑凑多篇博客完成的,我也把这个项目的一些过程分享一下。先把功能贴一下,其实就是点击拍照,将照片保存在本地,然后识别出图中的菜品,然后用红色方框圈出来,并显示菜品种类。采用最新的Camera2的API,的确是比Camera好用。
启动一个Activity对象,然后让其显示一个GameCanvas对象(setContentView(GameCanvas));,
应用程序在启动时系统为它创建一个进程,系统为每个进程创建dalvik虚拟机(模拟器设置的VM Heap),当图片的大小大于虚拟机的堆内存空间时,就内存溢出(内存泄露);
通过前面几篇,利用SurfaceView显示Camera的图像已经没什么问题了,接下来我们就要打磨一下细节,主要就是手机旋转的问题,考虑到我们会用横屏和竖屏的不同的情况。
之前的一篇文章中我们介绍了播放视频的时候调整音频的音量,我们能否在播放视频的时候在视频画面上加上水印?
最近做直播项目,需要实现点赞动画,一提起动画就想到了使用View的属性动画,后来想了一下,那么多用户点赞,会导致屏幕上出现很多View,开销太大,一定会很卡,所以看主流主播软件用什么方案解决的。
前一章《Android利用SurfaceView显示Camera图像爬坑记(一)》我们已经实现了利用SurfaceView将Camera中的实时帧图像显示出来了,我们做这个的主要目录是想把每一帧的数据取出后通过OpenCV图像处理后,再实时显示出处理后的图像。
转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38895143
领取专属 10元无门槛券
手把手带您无忧上云