2012-08-10 15 views
8

私はequalent code for the above xml file in 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> 

を使用してでframeLayoutを作成しています。私は何をしたのですか?

注:上記のJavaコードを使用すると、それぞれが重複しています。

+1

私は何をしましたか? - あなたは何の間違いを発見しましたか? –

答えて

3

Android Developer - Frame Layout Documentationは読む:お互いに重複子供のいないさまざまな画面サイズにスケーラブルだ方法で、子ビューを整理することが困難な場合があるため

は一般的に、でframeLayoutは、単一の子ビューを保持するために使用する必要があります。ただし、FrameLayoutに複数の子を追加し、android:layout_gravity属性を使用して、各子に重力を割り当てることで、FrameLayout内の位置を制御できます。

あなたの場合、layout.setForegroundGravity(int)を使用することができます。

1

layout.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); 

または

layout.setGravity(Gravity.CENTER); 

あなたはレイアウトの重力を設定するのを忘れます。

+0

私がFramworkレイアウトに上記のコードを使用して "未定義のメソッド"としてエラーを表示する場合 – Ponmalar

+0

はい、そうですが、メソッドはsetForgroundGravityです。とにかくありがとうございました。 upvoteを与える – Ponmalar

関連する問題