欧亿平台登录网址-欧亿平台登录地址


市新区小学强调创建文明城市从我做起|欧亿平台登录地址

欧亿平台登录地址-互联网之争:Facebook与谷歌网络隐私不和

Android应用之SurfaceView的双缓冲使用:欧亿平台登录网址

  • 6月 22, 2021
  • 科技
  • 没有评论

欧亿平台登录网址

这一次,SurfaceView的双缓冲区用于。双缓冲区是一个多线程应用程序,用于避免动画闪烁。基于SurfaceView的双缓冲区构造很简单,可以输入一个线程,在里面画。本文解释了基于SurfaceView的双缓冲区的构造,并解释了一种类似于。

这个程序的运行图如下。左边用单线程加载和绘制,右边用两个线程,一个加载图片,一个绘制。相比之下,右边动画的帧率明显比左边慢,两者都不用于Thread.sleep()。为什么要进两个线程,一读一画,而不是像左边那样进两个线程,读和画?因为SurfaceView每次绘制的时候都会对准Canvas,这意味着如果这次没有完成,下次就不能绘制相同的区域。

所以要提高双缓冲的效率,需要专门进入一个线程进行绘制,再进入另一个线程进行预处理工作。
main.xml的源码:viewplaincopytoclipboardprint?xmlversion=1.0encoding=utf-8?line layout xmlns : AnDroid=/apk/RES/AnDroid : layout _ width=fill _ parent AnDroid : layout _ height=fill _ parent AnDroid : orientation=verticallelarlayout AnDroid : id=@ id/line layout 01 AnDroid : layout _ width=wrap _ content AnDroid : layout _ height=wrap _ content buttonAnDroid : id=@ id/button 00单个独立国家线程/button button Android : id=@ id/button 02 Android : layout _ width=wrap _ content Android : layout _ height=wrap _ content Android :文本=两个独立国家线程/Button/line layoutsurfaceviewandrid : id=@ id/surface view 01 and radio : layout _ width=fill _ parentandrid : layout _ height=fill _ parent/surface view/line layout? xmlversion=1.0encoding=utf-8?line layout xmlns : AnDroid=/apk/RES/AnDroid : layout _ width=fill _ parent AnDroid : layout _ height=fill _ parent AnDroid : orientation=verticallelarlayout AnDroid : id=@ id/line layout 01 AnDroid : layout _ width=wrap _ content AnDroid : layout _ height=wrap _ content buttonAnDroid : id=@ id/button 00单个独立国家线程/button button Android : id=@ id/button 02 Android : layout _ width=wrap _ content Android : layout _ height=wrap _ content Android :文本=两个独立国家线程/Button/line layoutsurfaceviewandrid : id=@ id/surface view 01 and radio : layout _ width=fill _ parentandrid : layout _ height=fill _ parent/surface view/line layout本文程序的源码:viewplaincopytoclipboardprint? package comTestSurface视图;导入Java。朗。

反思。字段;导入Java。

util。ArrayListimportandroid。app。

活动;importandroid。图形。位图;importandroid。图形。

欧亿平台登录地址

BitMapFactoryimportandroid。图形。画布;重要的老了。

图形。油漆;importandroid。图形。

欧亿平台登录网址

rectimportandroid。OS。

捆绑;importandroid。util。日志;importandroid。

视图。表面支架;importandroid。

视图。表面视图;importandroid。视图。视图;importandroid。

小工具。按钮;publicClassTestSurfaceViewExtendsactivity {/* *调用了首次创建的活动。

*/buttonbtnsinghtread,btndubletreadsurfaceviewsfvsurfaceholdersfharraylistegegrimlist=new arraylistegeer();intimgWidth,imgHeight位图位图;//独立国家线程加载,独立国家线程绘图@ override publication create(BundlesavedInstanceState){ super。oncreate(savedInstanceState);setContentView(r . layout。main);btnsinghtread=(Button)这个。

findviewbyid(r . id。按钮01);btndublethread=(Button)这个。findviewbyid(r . id。

欧亿平台登录网址

按钮02);btnsingthread。setonclicklistener(NewClickEvent());btndublethread。setonclicklistener(NewClickEvent());sfv=(表面视图)这个。findviewbyid(r . id。

表面视图01);sfh=sfv。GetHolder();sfh。add callback(NewMyCallback());//自动运营表面创建以及surface changed } class clickevent implements view .OnClickListener { @ OverridePublicationClick(Viewv){ if(v==BtnsingLethread){ NewLoad _ DrawImage(0,0).start();//进一条线程加载并绘图} else if(v==BTnDoubleThread){ NewLoadimage().start();//进一条线程加载新绘图图像(IMgwidth 10,0).start();//进一条线程绘图} } } class mycallbackimplessurfaceholder .回调{ @ override publicatavitysurfaceChanged(Surface holder holder,intformat,intwidth,in thigh){ log。一(Surface :Change);} @ OverridePublicavitySurface创建(曲面支架){ Log ._欧亿平台登录地址。

本文来源:欧亿平台登录地址-www.france-transactions-contact.com

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图