问题是我在我的活动中使用了一种 SurfaceView,我想在其中添加按钮。
我的问题是:
1) 如何在不调用 findViewById(...) 的情况下创建按钮实例?(因为surfaceView我没有布局)......
2) 我如何在画布上绘制这个按钮?
或者,也许您建议做其他事情?
我只关心我的屏幕上会有按钮,我可以实现类似 OnClickListener(...)....
提前感谢所有人!
问题是我在我的活动中使用了一种 SurfaceView,我想在其中添加按钮。
我的问题是:
1) 如何在不调用 findViewById(...) 的情况下创建按钮实例?(因为surfaceView我没有布局)......
2) 我如何在画布上绘制这个按钮?
或者,也许您建议做其他事情?
我只关心我的屏幕上会有按钮,我可以实现类似 OnClickListener(...)....
提前感谢所有人!
setOnClickListener
在没有 xml的情况下添加为 Activity 的按钮:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Button button= new Button (this);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT);
params.topMargin = 0;
params.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
button.setText("dynamic Button");
addContentView(button, params);
// setContentView(tv);
button.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
}
});
}
如果您在画布上绘制按钮(这是可能的),它将无法点击。你真正想要的是:
像这样:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/FrameLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/restartButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:onClick="whatever"
android:text="look, I float above the SurfaceView!" />
</RelativeLayout>
</FrameLayout>