`

SurfaceView的最基础代码段

阅读更多
1.Activity中引用:
 
setContentView(new MyView(this));


2.MyView的类构建:
class MyView extends SurfaceView implements SurfaceHolder.Callback {

		SurfaceHolder holder;

		public MyView(Context context) {
			super(context);
			holder = this.getHolder();// 获取holder
			holder.addCallback(this);
			// setFocusable(true);

		}

		@Override
		public void surfaceChanged(SurfaceHolder holder, int format, int width,
				int height) {

		}

		@Override
		public void surfaceCreated(SurfaceHolder holder) {
			new Thread(new MyThread()).start();
		}

		@Override
		public void surfaceDestroyed(SurfaceHolder holder) {

		}

		// 内部类的内部类
		class MyThread implements Runnable {

			@Override
			public void run() {
				Canvas canvas = holder.lockCanvas(null);// 获取画布
				Paint mPaint = new Paint();
				mPaint.setColor(Color.BLUE);
				canvas.drawRect(new RectF(40, 60, 80, 80), mPaint);
				canvas.drawText("hello", 100, 30, mPaint);
				holder.unlockCanvasAndPost(canvas);// 解锁画布,提交画好的图像
			}
		}
	}
分享到:
评论

相关推荐

    基于android实现SurfaceView播放视频代码.rar

    在Android平台上,开发一...学习并理解这段代码,对于提升Android视频播放相关技能大有裨益。同时,也可以在此基础上扩展功能,如添加控制器、支持网络视频播放等。记得在实践中不断探索和学习,才能真正掌握这些技术。

    SurfaceView线程绘图代码示例

    内容是一段关于SurfaceView线程绘图代码示例, 也是个简单的示例,只力求把流程展示清楚。 SurfaceHolder holder; public MyView(Context context) { super(context); holder = this.getHolder(); //获取holder ...

    surfaceview进行屏幕截图demo

    通过阅读和分析这段代码,开发者可以更好地理解SurfaceView截图的实现细节,并在自己的项目中应用。 总结来说,SurfaceView的截图需要特殊处理,因为其内容不在主线程绘制。通过合理地使用SurfaceHolder和Canvas,...

    surfaceview+mediaplayer实现视频播放和动态设置全屏窗口切换。

    分析这段代码可以帮助你更好地理解这些概念。 总之,SurfaceView和MediaPlayer的结合使用是Android实现高效视频播放的常见方案,而动态调整View尺寸和全屏切换是提升用户体验的重要手段。理解并熟练运用这些技术,...

    SurfaceView中模拟正弦波

    理解`SurfaceView`的工作原理和`Timer`的使用是创建此类动画的基础,同时,对三角函数的理解也至关重要。在这个过程中,还需要考虑性能优化和内存管理,以提供流畅的用户体验。在实际项目中,可能还需要根据需求调整...

    Android自定义SurfaceView——实现画板功能

    在Android开发中,自定义`SurfaceView`是一个常见的需求,特别是在需要进行高性能图形绘制或视频播放等场景。...参考链接提供的博客文章会更详细地解释这些步骤,包括代码示例,可以作为学习和实践的指导。

    SurfaceView + MediaPlayer 实现的视频播放器

    在创建`SurfaceView`时,我们需要在布局文件中添加`SurfaceView`元素,并在代码中获取其引用。 ```xml <SurfaceView android:id="@+id/surface_view" android:layout_width="match_parent" android:layout_...

    安卓拍照上传录像监控录屏相关-自定义利用SurfaceView实现拍照.rar

    接着,我们会在Java代码中实例化SurfaceView,并在它的SurfaceHolder回调中处理与摄像头相关的操作。 当Surface准备好时(即SurfaceHolder的`surfaceCreated()`回调),我们可以请求开启摄像头并设置预览回调。预览...

    AndroidApp中使用SurfaceView制作多线程动画的实例讲解.docx

    这意味着在`SurfaceHolder.Callback.surfaceCreated()`与`SurfaceHolder.Callback.surfaceDestroyed()`之间的时间段内,以及当`Surface`类型为`SURFACE_TYPE_PUSH_BUFFERS`时,才可以进行绘制操作。 3. **资源管理*...

    Android在surfaceview中显示Dialog和Toast

    而`Toast`则是一种短暂的信息提示,它会在屏幕上的指定位置显示一段时间后自动消失。 在`SurfaceView`中直接显示`Dialog`或`Toast`可能会出现问题,比如被`SurfaceView`遮挡或者显示不完整。这是因为`SurfaceView`...

    android透明的自定义Dialog和Toast在SurfaceView中的展示源码

    3. **代码实现**:在Activity中实例化Dialog,设置布局并显示。确保在`onCreateDialog()`方法中应用之前定义的主题。 ```java Dialog dialog = new Dialog(this, R.style.TransparentTheme); dialog.setContentView...

    解决Android SurfaceView绘制触摸轨迹闪烁问题的方法

    - **优化路径合并**:如果轨迹很多,可以考虑在一段时间或达到一定数量后合并路径,减少绘制对象的数量。 - **使用硬件加速**:开启硬件加速可以提升绘制性能,但可能不适用于所有情况,需要根据实际需求调整。 综...

    Android开发--仿景点通景区地图SurfaceView实现

    在Android应用开发中,自定义视图是实现特定功能或独特界面的重要手段。本示例“Android开发--...对于初学者,通过阅读和理解这段代码,可以深入学习Android中的SurfaceView使用,以及如何处理触摸事件和实现地图功能。

    Android 硬解码MediaCodecDemo

    项目中应该包含了处理硬解码过程中的各种问题的代码段,如异常处理、线程同步以及错误恢复策略。通过阅读和运行这个Demo,开发者可以更好地理解硬解码的实战应用,并从中学习如何避免和解决上述提到的问题。 总结来...

    Android自动手绘,圆你儿时画家梦!

    这样,他们只需几行代码就能在自己的应用中集成这个炫酷的功能,进一步提升应用的吸引力。 总结来说,“Android自动手绘”涉及到的关键知识点包括Android图像处理技术、动画框架的使用、UI设计以及性能优化。通过...

    android游戏开发基础小球运动

    在Android游戏中,小球通常被表示为一个圆形图像或者通过代码动态绘制。使用Android的Canvas类,开发者可以画出一个圆形,并通过设置其颜色、半径等属性来定制小球的外观。例如,`Paint`对象用于定义颜色和样式,`...

    一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,真正实现Android的全屏功能

    这段代码首先请求音频焦点,然后创建一个音频播放器实例,设置音频属性,准备音频源并开始播放。 实现全屏功能,可以在视频播放器的监听事件中处理布局的变化: ```java playerView....

    足球游戏开发代码

    开发者可能使用了Android SDK(Software Development Kit)来构建游戏框架,其中包括了Android API、工具和库,这些是构建Android应用的基础。 【描述】提到"代码仅供参考,在部分手机中无法运行,虚拟机运行可能性...

    安卓忍者突袭源代码.zip

    通过深入研究《安卓忍者突袭源代码》,不仅可以掌握Android应用开发的基础,还能了解到游戏开发的具体实践,对于提升编程技能和理解游戏开发流程有着极大的帮助。无论是初学者还是有经验的开发者,都能从中受益匪浅...

Global site tag (gtag.js) - Google Analytics