滚动大图片android

时间:2014-08-27 09:53:49

标签: scrollview android-imageview large-files

早上好,我想在我的Android应用中滚动一个大图像,我的图像大小为800 * 3782像素 每当我得到内存错误时,图像的大小为1.7Mb,分辨率为72 dpi。 这是xml:

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

     >
<HorizontalScrollView
        android:id="@+id/horizontalScrollView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <ScrollView
                android:id="@+id/scrollView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
            </ScrollView>
  </HorizontalScrollView> 
</LinearLayout>

这是java类:

public class About extends Activity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.about);
        ImageView iv = (ImageView) findViewById(R.id.imageView1);


        Resources res = getResources();
        BitmapDrawable bitmap = (BitmapDrawable) res.
             getDrawable(R.drawable.aboutscroll);
        int imgW = bitmap.getIntrinsicWidth();
        int imgH = bitmap.getIntrinsicHeight();

        iv.setImageDrawable(bitmap);

        ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) iv.getLayoutParams();
        params.width = imgW;
        params.height = imgH;
    }


}

我有这样的错误:

08-27 09:51:10.175: E/AndroidRuntime(1578): FATAL EXCEPTION: main
08-27 09:51:10.175: E/AndroidRuntime(1578): java.lang.OutOfMemoryError
08-27 09:51:10.175: E/AndroidRuntime(1578):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
08-27 09:51:10.175: E/AndroidRuntime(1578):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)

如果有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

“内存不足错误”表示图像文件太大..如果减少,则不会再出现错误。 :)