将两个位图组合成一个位图会引发OutOfMemoryException

时间:2013-12-05 06:30:36

标签: android bitmap out-of-memory

我使用下面的代码将两个位图组合成一个位图:

real = (RelativeLayout)findViewById(R.id.real);

apply.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i = new Intent();
        ByteArrayOutputStream bs = new ByteArrayOutputStream();
        loadBitmapFromView(real).compress(Bitmap.CompressFormat.PNG, 100, bs);
        byte[] byteArray = bs.toByteArray();
        i.putExtra("bittext", byteArray);
        setResult(RESULT_OK,i);
        finish();
    }
});

public static Bitmap loadBitmapFromView(View v) {
    Bitmap b = Bitmap.createBitmap( v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);                
    Canvas c = new Canvas(b);
    v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
    v.draw(c);
    return b;
}

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="@drawable/bg">

    <RelativeLayout
        android:id="@+id/real"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_margin="25dp"
        android:layout_above="@+id/text"
        android:layout_centerInParent="true">

        <ImageView
            android:id="@+id/image"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>

        <ImageView android:layout_width="fill_parent"
            android:layout_height="fill_parent"enter code here
            android:id="@+id/imagetext" 
            android:scaleType="matrix"/>

    </RelativeLayout>
    <Button android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/text"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_margin="10dp"/>`enter code here`

    <Button
        android:id="@+id/apply"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/text"
        android:layout_margin="10dp"
        android:background="@drawable/apply" />

</RelativeLayout>

单击@+id/apply按钮时出错,它无法与位图一起转到上一个活动。这个问题只发生在一台设备上(仅限Videocon mobile)。问题是什么,我该如何解决?

0 个答案:

没有答案