package com.dream.apm;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* Created by HuangZhiLong on 2015/1/22.
*/
public class MySurfaceViewone extends SurfaceView implements SurfaceHolder.Callback,Runnable {
private Thread th;
private SurfaceHolder sfh;
private Canvas canvas;
private Paint paint;
private boolean flag;
public int screenW=0,screenH=0;
/**
* SurfaceView初始化函数
*/
public MySurfaceViewone(Context context, AttributeSet attrs) {
super(context, attrs);
this.setKeepScreenOn(true);
sfh = this.getHolder();
sfh.addCallback(this);
paint = new Paint();
paint.setAntiAlias(true);//消除锯齿
//paint.setTypeface(Typeface.DEFAULT_BOLD);
this.setFocusable(true);
this.setFocusableInTouchMode(true);
}
/**
* SurfaceView视图创建,响应此函数
*/
@Override
public void surfaceCreated(SurfaceHolder holder) {
screenW = this.getWidth();
screenH = this.getHeight();
myDraw();
//tt=new Rect(0,0,this.getWidth(),this.getHeight());
flag = true;
th = new Thread(this);
th.start();
}
/**
* 游戏绘图
*/
public void myDraw() {
try {
canvas = sfh.lockCanvas();
canvas.drawColor(Color.rgb(90, 151, 161));//背景
paint.setStrokeWidth(0);
paint.setColor(Color.BLACK);
//paint.setTextSize(size);
//绘制表格
} catch (Exception e) {
} finally {
if (canvas != null)
sfh.unlockCanvasAndPost(canvas);
}
}
/**
* 图片的线程运行
*/
public void run() {
while (flag) {
myDraw();
try {
Thread.sleep(40);
} catch (Exception ex) {
Log.e("ERROR", "Thread is Error!");
}
}
}
/**
* 触屏事件监听
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction())
{
//移动
case MotionEvent.ACTION_MOVE:
break;
//按下
case MotionEvent.ACTION_DOWN:
break;
//放开
case MotionEvent.ACTION_UP:
break;
}
return true;
}
/**
* SurfaceView视图状态发生改变,响应此函数
*/
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
System.out.println("ImageSurfaceView is surfaceChanged");
}
/**
* SurfaceView视图消亡时,响应此函数
*/
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
System.out.println("ImageSurfaceView is surfaceDestroyed");
flag = false;//停止线程
}
}
- 浏览: 277943 次
- 性别:
- 来自: 广州
博客专栏
-
数据结构
浏览量:68980
最新评论
-
clever101:
兄弟,能提供一个有参数传递的例子吗?
java jni详细入门实例 -
comsci:
拓扑分析算法...............寻径与导 ...
A星寻路算法 -
manxisuo:
感谢博主,好文章。
java的类加载器ClassLoader -
User_Java:
类的静态变量初始化顺序与其声明的顺序有关。自增操作都执行后保存 ...
据说一半以上的java程序员会出错的题 -
flashsnow:
在公司写这样的代码是要遭雷劈的But,为了理解ClassLoa ...
据说一半以上的java程序员会出错的题
相关推荐
自定义surfaceview实现抽奖转盘,根据慕课网视频手敲的
最近要搞一个项目要用到拍照功能,搞了许多项目都没有一个特别满意的,后来现在自己网上找了一个然后改进了一下,支持拍照录视频,而且连变焦都有,支持横批拍照,闪光灯功能,前后摄像头切换都有。
自定义surfaceVIew,讲解在子线程中绘制的demo
用surfaceview做android游戏开发,自己写的,希望可以帮助大家。
相关博客 http://blog.csdn.net/qq_25193681/article/details/52005375
主要为大家详细介绍了Android自定义SurfaceView实现画板功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
SurfaceView的应用代码
android自定义相机SurfaceView形式,SurfaceView是一个功能强大的控件,它拥有独立的绘图表面(不与其宿主窗口共享同一个绘图表面)。由于其拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行...
本文主要介绍Android SurfaceView自定义方法,这里对SurfaceView的基础知识做了详解,并附简单的示例代码,以便参考,有需要的小伙伴可以参考下
用SurfaceView自定义绘制时钟效果,attr自定义属性效果,时钟秒针每秒绘制一次,分针没分绘制一次
如何用SurfaceView实现动画效果
在surfaceview中内置camera镜头的demo
surfaceview 多点触控移动放大缩小.rar
android surfaceview自定义拍照 绘制头像轮廓 注明:是借用网上的demo基础上进行修改的
自定义利用SurfaceView实现拍照.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
自定义SurfaceView 实现手写板功能,绘画流畅不卡顿。可保存为Bitmap,可重现绘画轨迹。
Android图片镜像倒影特效
android camera 难得的底层资料,需要的赶快下载啊。