Android ImageView具有高分辨率崩溃

时间:2013-12-02 20:19:45

标签: android xml exception

我的活动只包含一个textView和一个ImageView

<?xml version="1.0" encoding="utf-8"?>

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


    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Large Text"
            android:id="@+id/textView"
            android:layout_gravity="left|center_vertical"
            android:padding="10dp"/>

    <ScrollView android:layout_height="wrap_content" android:layout_width="fill_parent" >
        <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical">
    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="330dip"
            android:id="@+id/civil_seminar_image"
            android:layout_gravity="left|center_vertical"
            android:src="@drawable/seminar"/>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

当这个ImageView以正常大小加载和图像时,没关系,但当它加载大尺寸和高分辨率的图像时,它会崩溃我的应用程序并给我这个例外

Failed looking up window
        java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@4356f810 does not exist
        at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8911)
        at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8902)
        at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:934)
        at android.os.BinderProxy.sendDeathNotice(Binder.java:449)
        at dalvik.system.NativeStart.run(Native Method)

我通过Stack和Google搜索了很多,我得到的是不加载这个大图片的建议,我也尝试将它放在ScrollView中滚动它但也失败了,任何想法< / p>

1 个答案:

答案 0 :(得分:1)

如果要在屏幕上显示非常大的图像,则必须缩小尺寸。我想这不是你想听/读的答案,但却是唯一的方法。

为避免缩放时质量不佳,您可以在缩放时增加inSample尺寸,并使用增加的inSample尺寸再次解码原始图像资源。

作为解决方法,您可以尝试在WebView上加载图像:

webview.getSettings().setBuiltInZoomControls(true);
webview.loadDataWithBaseURL("file:///android_asset/", "<img src='file:///android_res/drawable/example.png' />", "text/html", "utf-8", null);