2

xmlにLinearLayoutがあり、そのLinearLayoutにWebビューを追加していますが、Webビューが中央に配置されていない状態で上部に表示されています。

これが現在の表示方法です。

webview content
--------------------
webview content
--------------------
webview content
--------------------

コード

        WebView answerHtml = new WebView(this);
        answerHtml.setId(i);
        answerHtml.setOnTouchListener(AnswerListener);
        answerHtml.setBackgroundColor(0);
        answerHtml.setBackgroundResource(R.drawable.ans_back);
        answerHtml.getSettings().setJavaScriptEnabled(true);
        answerHtml.loadDataWithBaseURL(null, a.getText(), "text/html", "utf-8", null);
        ansCellLayout.addView(answerHtml,new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,80));
        ansCellLayout is a Linearlayout  defined in xml.

解決済み

answerHtml.loadDataWithBaseURL(null,"<html><head><style type='text/css'>html,body {margin: 0;padding: 0;width: 100%;height: 100%;}html {display: table;}body {display: table-cell;vertical-align: middle;text-align: center;}</style></head><body><p>"+a.getText()+"</p></body></html>", "text/html", "utf-8", null);

これで、レイアウトの垂直方向の中央に配置されます。

4

4 に答える 4

1

このサンプルを使用してカスタマイズします。

            String desiredContent = "my test html";
            String strBody = "<html>"
                + "<head>"
                + "     <style type=\"text/css\">"
                + "     @font-face "
                + "         {   font-family: Tahoma;"
                + "             src:url(\"~/android_asset/fonts/MyriadPro-Regular.otf\") "
                + "         }"
                + "     #text"
                + "         {   font-family: Tahoma;"
                + "             font-size:14;"
                + "             text-align: center;"
                + "         }"
                + "     </style>"
                + ""
                + "</head>"
                + "<body dir=\"rtl\" id=\"text\">"
                + desiredContent 
                + " </body></html>  ";

        myWebView.loadDataWithBaseURL(null, strBody, "text/html", "utf-8",
                null);

楽しい!

于 2013-08-18T11:03:09.743 に答える
0

アクティビティで次のコードを使用してみてください。

ansCellLayout.setGravity ( Gravity.CENTER );
于 2013-01-10T12:16:53.150 に答える
0

LineraLayout を次のように設定してみてください。

編集1:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true">
</LinearLayout>

</RelativeLayout>

アクティビティから:

        LinearLayout ansCellLayout = (LinearLayout) findViewById(R.id.linearLayout);

        WebView answerHtml = new WebView(this);
        answerHtml.setId(1);
       // answerHtml.setOnTouchListener(AnswerListener);
        answerHtml.setBackgroundColor(0);
        answerHtml.setBackgroundResource(R.drawable.ic_launcher);
        answerHtml.getSettings().setJavaScriptEnabled(true);
        answerHtml.loadDataWithBaseURL(null, "test test", "text/html", "utf-8", null);
        ansCellLayout.addView(answerHtml,new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,80));

ありがとう。

于 2013-01-10T11:59:17.330 に答える
-1

これを試してください(これは Pratik の投稿を編集したものです)。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:centerHorizontal="true">
    </LinearLayout>

</RelativeLayout>
于 2013-01-10T12:21:52.757 に答える