在android系统创建布局编程 - 问题 [英] Create Layout Programmatically in android - issue

查看:133
本文介绍了在android系统创建布局编程 - 问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建的FrameLayout动态使用以下code

I am creating FrameLayout dynamically using the following code

mylayout.java

mylayout.java

FrameLayout layout = new FrameLayout(this);
        FrameLayout.LayoutParams layoutparams=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);            
        layout.setLayoutParams(layoutparams);

        webview=new WebView(this);
        webview.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));

        splashview=new ImageView(this);
        splashview.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));
        splashview.setScaleType(ScaleType.FIT_XY);
        splashview.setImageResource(R.drawable.splash);
        splashview.setVisibility(View.INVISIBLE);

        progressbar=new ProgressBar(this);
        FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.MATCH_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
        progressbar.setLayoutParams(params);
        progressbar.setVisibility(View.INVISIBLE);          


        layout.addView(webview);
        layout.addView(progressbar);
        layout.addView(splashview);

        setContentView(layout);

mylayout.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_vertical|center_horizontal"
    android:gravity="center_vertical|center_horizontal" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </WebView>

<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|center_horizontal"
    android:visibility="invisible" />




    <ImageView
        android:id="@+id/splashscreen"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/myimg"
        android:scaleType="fitXY"
        android:src="@drawable/splash"
        android:visibility="invisible" />

</FrameLayout>

我需要的 equalent code在Java 上面的XML文件。我做了什么错?

I need the equalent code for the above xml file in java. what mistake i did?

请注意:使用上面的Java code,每一个都是重叠的。

Note: Using the above java code, each one is overlapping.

推荐答案

Android开发者 - 框架布局文档写着:

一般情况下,应该的FrameLayout用于存放单个子视图,因为它可以是难以组织的方式,是扩展到不同的屏幕尺寸没有这些孩子互相重叠的子视图。你可以,但是,多个孩子添加到的FrameLayout,并使用 Android的分配比重为每一个孩子,控制的FrameLayout中的位置:layout_gravity 属性

在你的情况,你可以使用 layout.setForegroundGravity(INT)的一样。

In your case, you may use layout.setForegroundGravity(int) for the same.

这篇关于在android系统创建布局编程 - 问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆