2012-08-10 15 views
8

Dinamik aşağıdaki koduandroid Düzen program kullanarak oluşturma - Sorun

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> 

Ben equalent code for the above xml file in java ihtiyacım kullanarak FrameLayout oluşturma. ne yaptım ben?

Not: Yukarıdaki java kodunu kullanarak, her biri çakışıyor.

+1

Ne yaptığım? - Hangi hatayı fark ettin? –

cevap

3

Android Developer - Frame Layout Documentation okur: o birbirini örtüşen çocuğu olmayan farklı ekran boyutlarına ölçeklenebilir bir şekilde yaparız çocuk görüşlerini organize etmek zor olabilir çünkü genellikle

, FrameLayout, tek çocuk görünümünü tutmak için kullanılmalıdır. Bununla birlikte, FrameLayout'a birden çok alt öğe ekleyebilir ve android:layout_gravity özniteliğini kullanarak her bir çocuğa yerçekimi atayarak FrameLayout içindeki konumlarını kontrol edebilirsiniz.

Sizin durumunuz için, layout.setForegroundGravity(int)'u aynı şekilde kullanabilirsiniz.

1

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

veya

layout.setGravity(Gravity.CENTER); 

Sen düzeni ciddiyetini kurmayı unuttuğu ekleyin.

+0

Yukarıdaki kodu Framwork düzeni için kullanıyorum, "undefined method" olarak bir hata gösteriliyor – Ponmalar

+0

Evet, haklısınız .... ama yöntem setForgroundGravity. Neyse, teşekkürler. Yaklaşmak – Ponmalar