MainActivity
package com.example.surfacedemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this)); //设置显示MyView实例
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
MyView
package com.example.surfacedemo;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
public class MyView extends SurfaceView {
SurfaceHolder sh;
public MyView(Context context) {
super(context);
sh = getHolder();//得到Holder
sh.addCallback(new Callback() {//创建回调
public void surfaceDestroyed(SurfaceHolder holder) {//界面销毁时执行
}
public void surfaceCreated(SurfaceHolder holder) {//界面创建后执行
Canvas canvas = sh.lockCanvas();
Paint paint=new Paint();
paint.setColor(Color.BLUE);
canvas.drawCircle(100,100, 20, paint);
sh.unlockCanvasAndPost(canvas);
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {//界面改变时执行
}
});
}
}
分享到:
相关推荐
在Android开发中,`SurfaceView`是一个非常重要的视图组件,尤其在处理视频播放、游戏渲染等高性能图形操作时,它的优势在于拥有独立于主线程的渲染机制,能避免阻塞UI更新。然而,由于其特殊的性质,直接通过常规...
Android双SurfaceView底部拍照,顶部绘图,当SurfaceHolder对象的类型设置为SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS时就只能拍照不能绘制了。为了既能通过SurfaceView拍照又能在上面绘制图形,可以通过双...
在Android开发中,SurfaceView是一个非常重要的视图组件,它为开发者提供了在应用程序中实现高性能图形渲染的能力。SurfaceView的设计初衷是为了处理那些需要频繁更新且对性能要求较高的场景,如视频播放、游戏画面...
首先,SurfaceView是Android系统提供的一个特殊的视图,它拥有自己的Surface对象,这个Surface位于窗口的最底层,允许开发者直接在其上进行硬件加速的绘图操作,从而避免了频繁更新UI导致的主线程阻塞。这对于需要...
SurfaceView包含一个Surface对象,该对象存在于应用程序和系统窗口管理器之间,允许直接在硬件层面上进行绘图,从而避免了频繁的UI刷新导致的性能损失。在实时显示摄像头视频的场景中,这正是我们所需要的。 要实现...
通过这个"android-SurfaceView 游戏测试Demo",开发者可以深入理解SurfaceView的工作原理,掌握如何在Android游戏中使用SurfaceView进行高效绘图,为用户提供流畅的视觉体验。同时,源码分析也能帮助开发者学习到...
Android开发摄像头SurfaceView预览 背景画图(矩形和圆形) 实现(双surfaceview,顶层画矩形框,底层预览视频); UI:三个按钮 预览 摄像 图片保存,预览界面 可以显示(矩形和圆形等图画)
SurfaceView是Android系统提供的一种特殊视图,它拥有一个独立于应用程序主线程的Surface,可以在后台线程中进行绘图操作,从而避免阻塞UI线程。SurfaceView由两部分组成:一个是View,显示在界面上;另一个是...
在Android开发中,自定义`SurfaceView`是一个常见的需求,特别是在需要进行高性能图形绘制或视频播放等场景。本示例中的“Android自定义SurfaceView——实现画板功能”旨在教你如何利用`SurfaceView`创建一个可以...
在Android应用开发中,视觉效果和用户体验是至关重要的。"Android使用SurfaceView实现墨迹天气的风车效果"是一个典型的案例,它展示了如何利用Android的SurfaceView组件来创建动态、流畅的动画效果,以模拟类似墨迹...
在Android开发中,SurfaceView是一个非常重要的视图组件,它为高效显示动态视频或复杂的2D/3D图形提供了一个平台。SurfaceView拥有自己的独立渲染表面,与主线程的UI更新分离,使得高性能的图像处理成为可能。接下来...
在Android开发中,`SurfaceView`是一个非常重要的组件,它提供了与硬件图形渲染直接交互的能力。这个项目"android surfaceview自定义拍照 绘制头像轮廓"是基于网上现有的示例代码进行了修改,用于实现一个自定义的...
在Android开发中,View和SurfaceView是两种非常重要的视图组件,它们被广泛用于构建用户界面和处理图形绘制。这两个类都是Android系统提供用来显示动态内容的机制,但它们之间存在一些关键的区别。 **View组件** ...
- 在SurfaceView的绘制操作中,我们通常在`surfaceChanged()`方法里初始化绘图环境,如设置画笔、颜色等。 2. **在SurfaceView上画图**: - 使用`SurfaceHolder.lockCanvas()`获取可绘图的Canvas对象。 - 在...
首先,`SurfaceView`是Android提供的一种特殊视图,它允许开发者在应用程序中直接进行硬件加速的图形绘制,如视频播放、游戏画面等高性能需求的场景。`SurfaceView`有自己的绘图表面,独立于应用程序的主线程,这...
1. **SurfaceView**: SurfaceView是Android系统提供的一个特殊视图,用于在应用程序和操作系统之间提供一个独立的绘图表面。它在UI线程之外运行,适合处理高性能的图形绘制,如游戏或视频播放,确保不会阻塞主线程,...
在Android开发中,SurfaceView是一种特殊的视图,主要用于处理高性能的图形绘制,比如视频播放、游戏画面等。SurfaceView创建了一个独立的Surface,其后台线程可以无阻塞地进行绘图操作,提高了渲染效率。然而,由于...
在Android平台上开发游戏时,SurfaceView是一个至关重要的组件,它为高效、低延迟的图形渲染提供了可能。SurfaceView是Android系统提供的一种特殊视图,它有自己的独立绘制表面,与主线程分离,使得游戏或者视频这类...
总的来说,SurfaceView是Android系统提供的一种高效绘图机制,它使得开发者能够在不阻塞主线程的情况下实现高性能的图像处理。理解其工作原理和使用技巧,对于优化应用性能,特别是涉及动态图形和视频的场景,至关...
在Android开发中,SurfaceView是一种特殊的视图,它允许开发者在独立于主线程的单独线程中进行高性能的图形绘制,常用于视频播放、游戏等需要频繁更新图像的应用场景。本篇文章将深入探讨SurfaceView的绘图API及其...