Android 动态添加 SurfaceView 和 EditText 控件:全屏 SurfaceView 和自定义 EditText 位置
当您在 Android 系统中动态添加 SurfaceView 和 EditText 控件时,您可以使用以下代码:
- 在您的布局文件中,添加一个 FrameLayout 作为根布局:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
- 在您的 Activity 或 Fragment 中,使用 Java 代码动态添加 SurfaceView 和 EditText 控件:
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
private FrameLayout frameLayout;
private SurfaceView surfaceView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frameLayout = findViewById(R.id.frameLayout);
// 创建 SurfaceView
surfaceView = new SurfaceView(this);
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
frameLayout.addView(surfaceView);
// 创建 EditText
EditText editText = new EditText(this);
editText.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
// 设置 EditText 的位置和尺寸
FrameLayout.LayoutParams editTextParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
editTextParams.gravity = Gravity.CENTER;
editTextParams.setMargins(0, 100, 0, 0);
editText.setLayoutParams(editTextParams);
frameLayout.addView(editText);
}
}
这段代码将在 FrameLayout 中动态添加 SurfaceView 和 EditText 控件。SurfaceView 将占据整个屏幕,而 EditText 将位于屏幕中央,并在垂直方向上有 100 的间距。
请确保您已经导入相关的类和资源,并将布局文件命名为 activity_main.xml。
原文地址: https://www.cveoy.top/t/topic/pv7P 著作权归作者所有。请勿转载和采集!