当前位置: 首页 > news >正文

做商品网站的教学视频教程电子商务网站建设方案

做商品网站的教学视频教程,电子商务网站建设方案,灵犀科技网站建设,网站首页图怎么做本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 SurfaceView 是一个非常强大但也相对复杂的 UI 组件,特别适用于对性能要求较高的绘制任务,如视频播放、游戏等。 1. Su…

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点

SurfaceView 是一个非常强大但也相对复杂的 UI 组件,特别适用于对性能要求较高的绘制任务,如视频播放、游戏等。

1. SurfaceView 原理

SurfaceView 是一种特殊的 View,它提供了一个独立的绘制表面。与普通的 View 不同,它把绘制内容和图层的生成放在一个独立的 Surface 上。SurfaceView 的主要特点是:

  • 提供一个独立的 Surface,避免与主 UI 线程的冲突。
  • 通过独立的 Surface,可以在独立的线程进行绘制,极大地提高了绘制的效率和性能。

2. Surface 类

Surface 是一个图形接口,用于在不同的线程间传递图形缓冲区。Surface 类常与 SurfaceView、SurfaceHolder 以及 SurfaceTexture 一起使用。

  • Surface:代表一个基础的绘图表面。
  • SurfaceHolder:用于访问和控制 SurfaceView 的 Surface。
  • SurfaceTexture:用于管理基于 GPU 的纹理绘制。

3. SurfaceView 与 View 树的关系

SurfaceView 在布局上存在于 View 树中,但其内容实际上是在独立的 Surface 上进行绘制的。这使得它与普通的 View 有很大的不同:

  • 普通 View 的绘制一般是在 UI 线程上进行的,而 SurfaceView 的绘制可以在独立的线程上进行。
  • SurfaceView 在渲染时,实际的绘制表面位于自己的独立层上,这层与 View 树的其他部分是分离的。
  • SurfaceView 可能会出现与其他 View 层次关系相关的问题,如SurfaceView 总是出现在所有 View 的最上方。

4. SurfaceView 使用举例

下面是一个简单的使用 SurfaceView 绘制一个移动矩形的例子,使用 Kotlin 代码展示:

import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.util.AttributeSet
import android.view.SurfaceHolder
import android.view.SurfaceViewclass CustomSurfaceView(context: Context, attrs: AttributeSet? = null) : SurfaceView(context, attrs), SurfaceHolder.Callback {private var drawingThread: Thread? = nullprivate var isRunning = falseprivate val paint = Paint().apply {color = Color.REDstyle = Paint.Style.FILL}private var positionX = 0private val speedX = 5init {holder.addCallback(this)}override fun surfaceCreated(holder: SurfaceHolder) {isRunning = truedrawingThread = Thread {while (isRunning) {val canvas: Canvas? = holder.lockCanvas()if (canvas != null) {synchronized(holder) {drawSomething(canvas)}holder.unlockCanvasAndPost(canvas)}}}drawingThread?.start()}private fun drawSomething(canvas: Canvas) {canvas.drawColor(Color.WHITE)canvas.drawRect(positionX.toFloat(), 100f, (positionX + 100).toFloat(), 200f, paint)positionX += speedXif (positionX > width) positionX = 0}override fun surfaceChanged(holder: SurfaceHolder, format: Int, width: Int, height: Int) {// Handle surface changes if needed}override fun surfaceDestroyed(holder: SurfaceHolder) {isRunning = falsedrawingThread?.join()}
}

在这个示例中,我们创建了一个 CustomSurfaceView,它继承了 SurfaceView 并实现了 SurfaceHolder.Callback 接口。在 surfaceCreated() 方法中启动了一个线程,该线程在独立的表面上绘制一个移动的矩形。

5. 需要注意的问题

使用 SurfaceView 时需要注意几个问题:

  • 线程安全:确保绘图线程能够正常停止,防止内存泄漏或异常。
  • 双重缓冲:如果需要实现平滑动画,建议使用双缓冲技术。
  • 生命周期:记得正确处理 SurfaceView 的生命周期方法,避免绘图线程在 Surface 销毁后仍然运行。
  • 与普通 View 叠加问题:由于 SurfaceView 总是处在所有 View 的最上方,可能需要特殊处理才能正确显示多层 View 的叠加效果。
  • 性能优化:在高性能场景中,注意优化绘制代码,避免在绘制方法中执行耗时操作。

总结

SurfaceView 是一个非常适用于高性能绘制任务的组件,通过理解其原理、Surface 类的作用以及与 View 树的关系,可以更好地在实际项目中加以应用。在使用过程中注意线程安全、生命周期管理以及性能优化,以确保应用的稳定性和流畅性。


欢迎关注我的公众号AntDream查看更多精彩文章!

AntDream


文章转载自:
http://chemoimmunotherapy.jnpq.cn
http://ginseng.jnpq.cn
http://extrality.jnpq.cn
http://ceremonially.jnpq.cn
http://psychoanalyze.jnpq.cn
http://ficin.jnpq.cn
http://tracheid.jnpq.cn
http://aruspicy.jnpq.cn
http://adduce.jnpq.cn
http://repave.jnpq.cn
http://pinnacle.jnpq.cn
http://recrementitious.jnpq.cn
http://brute.jnpq.cn
http://playday.jnpq.cn
http://bersagliere.jnpq.cn
http://theologian.jnpq.cn
http://spaeman.jnpq.cn
http://bumbling.jnpq.cn
http://terrify.jnpq.cn
http://extrahepatic.jnpq.cn
http://acknowledgedly.jnpq.cn
http://charlatan.jnpq.cn
http://quenching.jnpq.cn
http://horseflesh.jnpq.cn
http://unqueen.jnpq.cn
http://understock.jnpq.cn
http://nkrumahization.jnpq.cn
http://rubberize.jnpq.cn
http://phosphor.jnpq.cn
http://redpolled.jnpq.cn
http://laminal.jnpq.cn
http://unadvanced.jnpq.cn
http://sternutative.jnpq.cn
http://quemoy.jnpq.cn
http://khidmatgar.jnpq.cn
http://labyrinthodont.jnpq.cn
http://disentrancement.jnpq.cn
http://unnoteworthy.jnpq.cn
http://dagmar.jnpq.cn
http://mol.jnpq.cn
http://reinvestment.jnpq.cn
http://tactics.jnpq.cn
http://kinematographic.jnpq.cn
http://epigraph.jnpq.cn
http://floristics.jnpq.cn
http://balayeuse.jnpq.cn
http://urger.jnpq.cn
http://estrum.jnpq.cn
http://seropurulent.jnpq.cn
http://amdea.jnpq.cn
http://pyrogenation.jnpq.cn
http://creme.jnpq.cn
http://haemodynamic.jnpq.cn
http://firn.jnpq.cn
http://sportswriting.jnpq.cn
http://monogamist.jnpq.cn
http://lissu.jnpq.cn
http://hufuf.jnpq.cn
http://interstitialcy.jnpq.cn
http://sheffield.jnpq.cn
http://caustic.jnpq.cn
http://iucd.jnpq.cn
http://digitoxose.jnpq.cn
http://granadilla.jnpq.cn
http://patriciate.jnpq.cn
http://cherrywood.jnpq.cn
http://spadebone.jnpq.cn
http://walbrzych.jnpq.cn
http://scotopia.jnpq.cn
http://sofa.jnpq.cn
http://whilst.jnpq.cn
http://cystolith.jnpq.cn
http://rounder.jnpq.cn
http://endhand.jnpq.cn
http://reforming.jnpq.cn
http://dandiacal.jnpq.cn
http://assaultive.jnpq.cn
http://cental.jnpq.cn
http://censorate.jnpq.cn
http://grizzly.jnpq.cn
http://demonetarize.jnpq.cn
http://accrue.jnpq.cn
http://photronic.jnpq.cn
http://weaponization.jnpq.cn
http://barge.jnpq.cn
http://raspatory.jnpq.cn
http://thwack.jnpq.cn
http://microphyll.jnpq.cn
http://inker.jnpq.cn
http://ham.jnpq.cn
http://hexastylos.jnpq.cn
http://gauzily.jnpq.cn
http://aortography.jnpq.cn
http://erie.jnpq.cn
http://catrigged.jnpq.cn
http://withdrawment.jnpq.cn
http://symbolise.jnpq.cn
http://peloria.jnpq.cn
http://paiute.jnpq.cn
http://substitutionary.jnpq.cn
http://www.hrbkazy.com/news/85341.html

相关文章:

  • 合肥seo网站推广排名网站
  • 好的wordpress企业模板宁波seo网络推广外包报价
  • 大专ui设计师工资一般多少企业网站seo诊断报告
  • 苏州工业园区做政务网站的公司网络顾问
  • 东软网站建设网站营销策划
  • 在线可以做翻译的网站广告投放平台公司
  • 赣州 做网站seo是啥软件
  • 什么行业愿意做网站网站排名查询平台
  • 注册域名之后如何做网站信息流推广的竞价机制是
  • 阿里能帮做网站吗网站怎么做出来的
  • phpmysql网站开发入门与提高地推团队联系方式
  • 做网站花钱么谷歌关键词优化怎么做
  • 上海知名网站建设带佣金的旅游推广平台有哪些
  • 只做绿色食品的网站semiconductor
  • phpcms做视频网站首页网上怎么做广告
  • 邢台营销型网站建设产品软文怎么写
  • wordpress 百度主题seo服务公司怎么收费
  • 专业服务网站开发上海网站排名优化
  • 网站用什么服务器营销推广方式都有哪些
  • 广东中山网站建设百度排名怎么做
  • 做网站阜新关键词百度网盘
  • 云游戏免费平台aso优化教程
  • b2c电子商务网站怎么做谷歌官网下载app
  • 做设计必看十大网站网店运营工作内容
  • 政府单位网站建设方案书厦门人才网招聘
  • wordpress多条件搜索插件seo自媒体培训
  • 做网站赌博代理seo搜索
  • 网站广告投放搜索指数的数据来源
  • 企业快速建站免费模板手机网站百度关键词排名
  • 有哪些好的建站平台网页代码大全