3

我最近一直在编写一个基本的网络漫画应用程序,并且在 webview 如何显示漫画方面遇到了问题。图像本身加载良好,但是图像上方或侧面总是有多余的空白,图像始终位于 web 视图的左上角。此外,通常网络视图会在一定程度上放大图像,这是一个问题,因为漫画的尺寸不同。

我想让图像加载,使其居中,根据高度或宽度(以适当者为准)进行调整,以便整个图像可见,并尽可能消除空白。不幸的是,我无法提供问题的任何屏幕截图,因为无论出于何种原因,任何模拟器都无法运行该应用程序。

就代码而言,我只有以下内容:

    <WebView
    android:id="@+id/webView1"
    android:layout_width="wrap_content"
    android:layout_height="300dp"
    android:layout_below="@+id/textView1"
    android:layout_gravity="center"
    android:layout_centerHorizontal="true" />

在类中,我的代码是这样的,图像是一个字符串,其中包含我从页面的 HTML 中提取的图像 URL:

        WebView myWebView = (WebView) findViewById(R.id.webView1);
    myWebView.loadUrl(image);
4

2 回答 2

2

尝试设置android:layout_height="wrap_content"

关于空白问题,请尝试查看此链接

于 2013-05-28T02:59:20.303 回答
0

尝试这个:

String dataString = "<head><style type='text/css'>"
                    +"body{margin:auto auto;text-align:center;} </style></head>"
                    +"<body><img src=\"image.png\"/></body>";

webview.loadDataWithBaseURL("file:///android_res/drawable/",dataString,"text/html","utf-8",null);

// set image scale to fit screen if larger than screen width
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager wm = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels; // minus some padding values if you have any left/right padding
Drawable drawable = getResources().getDrawable(R.id.image);
int wi = drawable.getIntrinsicWidth();

double scale = (wi>screenWidth) ? (double)screenWidth/wi : 1.0;
wv.setInitialScale((int) (scale*100));

在这种情况下 image.png是文件名,位于 res/drawable 文件夹中。

于 2013-05-28T03:13:28.153 回答