当前位置: 代码迷 >> Android >> SurfaceView有关问题
  详细解决方案

SurfaceView有关问题

热度:24   发布时间:2016-04-28 04:07:58.0
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

}
}

------解决思路----------------------
不用在XML里面放入了。 你用第一个构造函数就可以了。
可以用一个构造函数
 public MySurfaceView(Context context){

}