2010-07-30 17 views
0


Je rencontre un problème lors de l'affichage d'un WebView dans une activité au milieu de l'écran. J'ai une activité et je veux montrer une webview au centre de l'écran. Mon activité est transparente, donc l'activité de fond sera visible. Chaque fois que j'essaie de créer un webview et de l'ajouter à l'activité en utilisant setContentView (webview), il affiche toujours la vue dans le coin supérieur gauche de l'écran. Est-ce leur moyen de contourner le problème? J'essaie de le faire uniquement par le biais du code pur. Voici mon code. comment afficher un webview dans une activité au milieu de l'écran

protected void onCreate(Bundle savedInstance) { 
    //some initialization stuff 
    LinearLayout ll = new LinearLayout(activity); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    ll.setGravity(Gravity.CENTER_HORIZONTAL); 
    ll.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 
         ViewGroup.LayoutParams.FILL_PARENT)); 
    ll.setBackgroundColor(android.R.color.transparent); 
    ll.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); //added after suggestion 
    webView = new WebView(this); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.loadUrl(" http://www.google.com "); 
    ll.addView(webView); 
    webView.setBackgroundColor(android.R.color.transparent); 
    setContentView(ll); 
}
.

Répondre

1

setContentView(webview)setContentView(webview) n'est pas possible, êtes-vous sûr que vous passez le webView ici comme param? Ce devrait être un identifiant pour une ressource de mise en page. Ou voulez-vous dire addView?

Vous devez placer le WebView dans une ressource de mise en page et ajoutez les attributs de layout_gravity, à

layout_gravity="center_horizontal|center_vertical" 

et/ou les environs LinearLayout ou tout ce que vous utilisez pour:

gravity="center_horizontal|center_vertical" 

S'il vous plaît votre code pour plus de précisions.

+1

J'ai mis à jour la question avec du code. La gravité fonctionne bien, le webView est centré avec. Est-il possible de limiter sa taille à 300 x 200, quelle que soit la taille de la page de chargement, et le reste du contenu doit être rogné ou des barres de défilement horizontales/verticales peuvent être affichées. Merci! – bhups

+0

oui, vous pouvez le faire via setLayoutParams, soit pour le LinearLayout environnant ou le WebView lui-même; au lieu d'utiliser ViewGroup.LayoutParams.FILL_PARENT: LinearLayout.LayoutParams params = new LinearLayout.LayoutParams (300, 200); ll.setLayoutParams (params); –