- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的 opengl View 上添加一个由 xml 定义的新 LinearLayout。
我使用纯 java 来实现:
public class VortexView extends GLSurfaceView {
public boolean onTouchEvent(final MotionEvent event) {
show_something();
}
void show_something()
{
//context is the main activity object that gets passed into this
LinearLayout ll = new LinearLayout(context);
b = new Button(context);
b.setText("hello world 1");
ll.addView(b);
ll.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
context.addContentView(ll, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
}
但是我希望能够做到这一点:
LinearLayout ll = (LinearLayout)findViewById(R.layout.main);
context.addContentView(ll, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
我的 xml 是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="kill"
/>
</LinearLayout>
虽然应用程序崩溃了,但我每次都这样做。有什么想法吗?
最佳答案
你有没有可能把那里弄得一团糟?让我们以不同的方式尝试一下,在后台创建一个 GLSurfaceView
,并在其上添加 LinearLayout
。
main.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<path.to.vortex.VortexView
android:id="@+id/vortexView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</path.to.vortex.VortexView>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</LinearLayout>
</RelativeLayout>
在您的 VortexView
类中添加构造函数和初始化
public class VortexView extends GLSurfaceView {
public VortexView (Context context)
{
super(context);
init(context);
}
public VortexView (Context context, AttributeSet atts)
{
super(context, atts);
init(context);
}
public VortexView (Context context, AttributeSet atts, int defStyle)
{
super(context, atts, defStyle);
init(context);
}
public void init(context)
{
//do whatever you need to init your view here...
}
}
在您的 Activity 中,您需要在 main.xml 上setContentView()
:
public class VortexActivity extends Activity
{
Context mContext;
VortexView mVortexView;
RelativeLayout relativeLayout;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mContext = getApplicationContext();
setContentView(R.layout.main);
mVortexView = (VortexView) findViewById(R.id.vortexView);
mRelativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
}
}
现在您可以随心所欲地使用您的布局,并且由于 VortexView
是在 LinearLayout
之前在 xml 中声明的,它将位于它的背景中。
关于android - addContentView 到 GLSurfaceView 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4059768/
我有一个关于 Android Activity 的问题: Activity 具有方法 addContentView(View) 而 ViewGroup 具有(类似?)addView(View) 方法。
我正在努力在当前运行的 Activity 之上添加视频。我已经设法使用以下方法实现了这一点: this.surface = new SurfaceView(getApplicationConte
我正在使用 addContentView() 添加布局。如何在单击按钮时删除此布局? 最佳答案 假设 contentView 是通过 window.addContentView() 添加的 View
我已经使用 addContentView() 成功地将 subview 添加到父 View 。但是当我试图删除 View 时,它会给我一个空指针异常。 //Working Code B
我正在学习一个教程并添加了一个像这样的新 View : super.onCreate(savedInstanceState); setContentView(R.layout.acti
我正在尝试在我的 opengl View 上添加一个由 xml 定义的新 LinearLayout。 我使用纯 java 来实现: public class VortexView extends GL
我想问一些关于 addContentView() 命令的问题。我创建了一个自定义 View ,该 View 由垂直模式下的 LinearLayout(fill parent, wrap content
AdMob documentation to integrate it on Android指示创建以下 XML,如果我们想通过 XML 创建 View : 并将其设置为 Activity
我正在使用 addContentView 将 subview 添加到我的主视图,如下所示: TableLayout.LayoutParams tlp = new TableLayout.Lay
我最近得到了一些淡入淡出的东西,所以我的“加载” View 是一个占据整个屏幕的 ImageView,然后我淡入主视图(在本例中是 GridView)在它的顶部。在 Activity 创建中,我调用:
我是一名优秀的程序员,十分优秀!