1

我的问题是我不知道如何在单击我的按钮时更改可绘制画布的位置,该按钮位于主要活动中而不是surfaceview,因此工作代码应该在surfaceview上,这就是我所拥有的

public class JumpOnClick extends Activity implements OnClickListener{

DrawingSurface ds;
FrameLayout frm;
Button btnC;
int color=0xfff00000;
@Override



 public void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
ds=new DrawingSurface(this);
setContentView(R.layout.activity_jump_on_click);


frm=(FrameLayout)findViewById(R.id.frameLayout);
frm.addView(ds);
btnC=(Button)findViewById(R.id.buttonColor);



btnC.setOnClickListener(this);

}



@Override

public void onClick(View v) {


//   how to connect  actions in here for my sprites on my surfaceview

// for example         AnimatedSprite a = new AnimatedSprite();             
//      if(b == null)
//b=BitmapFactory.decodeStream(res.openRawResource(R.drawable.explosion));          
//                   a.Initialize(b, 120, 159, 7, 20, true);
//                  mSprites.add(a);


}


}
4

2 回答 2

0

如果我理解正确,请在 SurfaceView 类中分别定义两个静态浮点变量 x 和 y,当您在 SurfaceView 中进行绘图时,只需将此变量用作 SurfaceView 的绘图方法中的位置参数。然后在按钮的 onClick 方法中返回您的活动,只需更改这些 x,y 变量,因为您无需创建对象即可访问它们。

于 2013-04-21T11:03:26.827 回答
0

我相信你需要给你的按钮添加布局规则才能将它放置在Surfaceview中(实际上一个按钮不能添加到SurfaceView,你需要在你的Activity中创建一个带有Layout的错觉并将按钮放置到这个Layout中)。

您可以在此视频中查看这个简单的解决方案https://www.youtube.com/watch?v=8qE9TQjQ5no&t=31s

即使用Relativelayout 将按钮放置在顶部和底部的SurfaceView。我的观点是使用该技术,您既不需要 ontouchevent 方法,也不需要 x,y 位置,如果您在 ondraw 方法中创建一个按钮(那么不会是按钮而是位图图像),您将需要它......我的意见是如果位置是问题,请坚持第一个解决方案,以便它可以作为 onclicklistener 的按钮。

于 2018-10-24T15:59:29.087 回答