Android Query Zoomable Web Image - 适合查看

时间:2013-11-28 21:47:03

标签: android android-webview android-query

我正在使用Android-Query将图片加载到网页视图中,因此我可以使用该特定视图附带的缩放功能。

现在,我正在加载的图像比它们的宽度更高,因此,在我的布局中,正在被裁剪(无法看到图像的底部)。

无论如何我可以改变我的代码来强制加载的图像缩放以适应视图吗?文件说......

  

除了ImageView之外,WebView还可用于显示图像   以及Android内置的缩放支持WebView。图像将是   居中并根据它来填充webview的宽度或高度   取向。

所以我想我可能会失去运气?这是加载图像的相关代码行...

aq.id(R.id.webview).progress(R.id.progressbar).webImage(imageUrl);

这就是外行......

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
  </RelativeLayout>

1 个答案:

答案 0 :(得分:0)

好。得到了适合我特定场景的解决方案,所以...

由于我知道正在加载到webview中的图像的比例,我想我可以将webview调整到正确的比例,以确保它正确地适合可用空间。我将XML更新为...

 <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/wrapper"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:orientation="vertical" >

        <WebView
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

    </LinearLayout>

    <ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

</RelativeLayout>

...然后将此添加到我的活动中(来自here的想法)...

@Override
public void onWindowFocusChanged(boolean hasFocus) {

    // need to set correct proportions of webview to match image
    super.onWindowFocusChanged(hasFocus);
    WebView mWrapper = (WebView) findViewById(R.id.webview);
    int w = mWrapper.getWidth();
    int h = mWrapper.getHeight();
    while ( w * 1.28 > h ) {
        w--;
    }
    LayoutParams params = new LinearLayout.LayoutParams( (int) w, LinearLayout.LayoutParams.FILL_PARENT );
    mWrapper.setLayoutParams(params);
}

...其中“1.28”值是我图像的宽度和高度之间的比率(高度除以宽度)。

因此,图像被添加到webview,视图被布局,然后这个代码开始并缩小宽度,直到它足够小以使用适当的比例适合可用高度。新的LinearLayout以webview为中心,使事情看起来整洁。