SurfaceView问题

============问题描述============

我的SurfaceView是注册在XML中的

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:background="@android:color/darker_gray" >

    <com.ada.MySurfaceView

        android:id="@+id/surfaceView"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent" />

</RelativeLayout >

想实现的功能是,在activity中进行相关运算,最后得到一值,想把这个值传到SurfaceView中,

并且SurfaceView构造时要用到这个值,怎么 实现啊?????

public class CartoonActivity extends Activity {

	@Override

	protected void onCreate(Bundle savedInstanceState) {

		// TODO Auto-generated method stub

		setContentView(R.layout.cartoon);

		//在这里进行相关运算,最后得到一值,想把这个值传到SurfaceView中,

                //并且SurfaceView构造时要用到这个值,怎么 实现啊?????

    }

}
public class MySurfaceView extends SurfaceView implements Callback, Runnable {

	public MySurfaceView(Context context, AttributeSet attrs) {

		super(context, attrs);

        }

	@Override

	public void surfaceCreated(SurfaceHolder holder) {

	} 

	@Override

	public boolean onKeyDown(int key, KeyEvent event) {

		return super.onKeyDown(key, event);

	}

	@Override

	public boolean onTouchEvent(MotionEvent event) {

		return true;

	}

	@Override

	public void run() {

		// TODO Auto-generated method stub

	}

	@Override

	public void surfaceChanged(SurfaceHolder holder, int format, int width,

			int height) {

		// TODO Auto-generated method stub

	}

	@Override

	public void surfaceDestroyed(SurfaceHolder holder) {

		// TODO Auto-generated method stub

	}

}

============解决方案1============

不用在XML里面放入了。 你用第一个构造函数就可以了。

可以用一个构造函数

public MySurfaceView(Context context){

}

时间: 2024-08-06 11:58:16

SurfaceView问题的相关文章

基于android平台的模拟血压计实现(surfaceView的熟练使用)

这个是我根据上一篇文章的温度计改的血压计,因为客户对温度计还有血压计的需求是一样的,所以,我就选择了偷懒,直接用温度计的代码改了一概,就成了血压计的了 1 package com.example.test; 2 3 4 5 import android.content.Context; 6 import android.graphics.Bitmap; 7 import android.graphics.Canvas; 8 import android.graphics.Color; 9 imp

能够在子线程绘画的View SurfaceView

转载请注明出处:王亟亟的大牛之路 近期两天都没有写文章,一方面是自己在看书.一方面不知道写什么,本来昨天想写Glide或者RxAndroid的东西结果公司的"狗屎"网怎么都刷不好Gradle我也是无语了(FQ也没用).准备今天背着笔记本 回家搞.真是服了.. 抱怨的话不说了,来看下这一篇要讲的主角 SurfaceView,关于SurfaceView的文章事实上在别的一些网站上也有,由于我之前没写过,所以也就一直没整这部分的内容(别人写的好坏反正找好的点自己吸收吧,嘿嘿) 问题:Surf

Android自定义组件系列【12】——非UI线程绘图SurfaceView

一.SurfaceView的介绍 在前面我们已经会自定义View,使用canvas绘图,但是View的绘图机制存在一些缺陷. 1.View缺乏双缓冲机制. 2.程序必须重绘整个View上显示的图片,比较耗资源. 3.非UI线程无法更新View组件,所以会占用主线程资源,当需要在主线程中处理逻辑的时候会很慢. 在Android中为我们提供了一个SurfaceView来替代View实现绘制图形,一般在游戏绘图方面应用较广,所以如果是比较复杂的绘图建议使用SurfaceView. 二.SurfaceV

Android中使用SurfaceView+MediaPlayer+自定义的MediaController实现自定义的视屏播放器

效果图如下: (PS本来是要给大家穿gif动态图的,无奈太大了,没法上传) 功能实现:暂停,播放,快进,快退,全屏,退出全屏,等基本功能 实现的思路: 在主布局中放置一个SurfaceView,在SurfaceView中放置一个MediaPlayer ,在其下方自定义一个MediaController,不过也不能称之为MediaController,使用的是PupupWindow来实现的,在PupupWindow布局中放置几个textView,Button,最重要的使我们的SeekBar控件,创

SurfaceView的基本使用

一.引入: Android提供了View来进行绘图处理,在大部分情况下,View都能满足绘图需求.大家都知道View是通过刷新来重绘视图,Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新的间隔时间为16ms.如果在16ms内View完成了你所需要执行的所有操作,那么用户在视觉上,就不会产生卡顿的感觉:反之,如果操作的逻辑过多时,就会掉帧从而使得用户感觉到卡顿.特别的需要频繁刷新的界面上,如游戏(60FPS以上),就会不断阻塞主线程,从而导致界面卡顿.而Android提供了Surfa

SurfaceView的使用

1.概念 SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图.它的特性是:可以在主线程之外的 线程中向屏幕绘图上.这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度.在游戏开发中多用到SurfaceView,游戏中的背 景.人物.动画等等尽量在画布canvas中画出. 2.实现方法 1)实现步骤 a.继承SurfaceView b.实现SurfaceHolder.Callback接口 2)需要重写的方法 (1)pu

surfaceView画图

1.视图 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 andr

Android视图SurfaceView的实现原理分析

附:Android控件TextView的实现原理分析 来源:http://blog.csdn.net/luoshengyang/article/details/8661317 在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面.由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行绘制.又由于不会占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,另一方面又不会导致用户输

android-tip-关于SurfaceView的使用

1. SurfaceView的创建和销毁 当SurfaceView隐藏时,SurfaceView被销毁,此时会调用SurfaceHolder.Callback.surfaceDestroyed() 当SurfaceView再次显示时,SurfaceView被创建,此时会调用SurfaceHolder.Callback.surfaceCreated() 2. SurfaceView的叠加显示 如果有两个SurfaceView需要叠加时,例如,A要悬浮在B之上, 此时,需要对A调用SurfaceVi

自己定义控件(2.2):SurfaceView和SurfaceHolder

本例需求及流程: Activity载入自己定义的SurfaceView-> SurfaceView 构造器中启动线程A.循环改变SurfaceView的x,y坐标,当x,y坐标到某点时设渐显标志位picAlphaFlag为true -> Surface创建时即surfaceCreated中,启动线程B,循环依据SurfaceView的x,y(被线程A循环改变)实时绘制图的位置,而且picAlphaFlag为true时,渐显还有一张图. 本例可优化点(个人意见): 1.线程A和线程B可合并: 本