Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8786127
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T21:32:15+00:00 2026-06-13T21:32:15+00:00

Possible Duplicate: Bitmap recycle with largeHeap enabled hi am doing one app here i

  • 0

Possible Duplicate:
Bitmap recycle with largeHeap enabled

hi am doing one app here i am displying images using bitmaps,that images is displaying well,but becz this class i am getting out of memory exception in another class.pls see once my code and how to solve this issue any suhhest me…

 public class DesignofatozActivity extends Activity {

BitmapDrawable sounddrawable,erasedrawable,backdrwable,fwddrwable,captiondrwable;
Bitmap soundbitmap,eraseBitmap,backbitmap,fwdbitmap,captionbitmap;
    bitmapOrg,bitmapOrg1,bitmapOrg2,bitmapOrg3,bitmapOrg4,bitmapOrg5,bitmapOrg6;
MyView myview;
File f;
ImageView d1,d2,d3,d4,d5,d6;
public  boolean action=false;
RelativeLayout relativeLayout,layout,relativeLayout2;


 Button c1,c2,c3,c4,c5,c6,c7,c8; 
 MediaPlayer player;
 MediaPlayer mediay2;
 ImageView horn;
 float screenHeight,screenWidth,screendensity;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setNoTitle();
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
         screenHeight = displaymetrics.heightPixels;
         screenWidth = displaymetrics.widthPixels;
         screendensity = displaymetrics.densityDpi;
        Log.i("screenHeight",""+screenHeight);
        Log.i("screenWidth",""+screenWidth);
        Log.i("screendensity",""+screendensity);

         setContentView(R.layout.line);
         relativeLayout=(RelativeLayout)findViewById(R.id.relative);

      relativeLayout.setBackgroundColor(Color.WHITE);

      relativeLayout2=(RelativeLayout)findViewById(R.id.relative2);

      RelativeLayout.LayoutParams layoutrel2= (RelativeLayout.LayoutParams)  relativeLayout2.getLayoutParams();    
      layoutrel2.height=(int)(25*(screenHeight/600));  

   int toplay=(int)(90*(screenHeight/600));

      layout=new RelativeLayout(this);
      RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(
    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
      lp.setMargins(0, toplay, 0,0);

      layout.setLayoutParams(lp);
      relativeLayout.addView(layout,lp); 

         int topmyvi=(int)(45*(screenHeight/600));
        myview = new MyView(this);
             myview.setId(004);
          RelativeLayout.LayoutParams lp6 = new RelativeLayout.LayoutParams(
         LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
          myview.setLayoutParams(lp6);

    lp6.setMargins(0, topmyvi, 0,0);
    relativeLayout.addView(myview,lp6);

    ImageView I2=new ImageView(this);

    if(captiondrwable!= null) {
        captionbitmap.recycle();
           captiondrwable= null;
            }

           captionbitmap=BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.caption22_1));
     captiondrwable = new BitmapDrawable(captionbitmap); 
       I2.setBackgroundDrawable(captiondrwable);

    int left2=(int)(15*(screenWidth/1024));

    int widthhh2=(int)(100*(screenWidth/1024));
    int hifhtttt2=(int)(50*(screenHeight/600));


       RelativeLayout.LayoutParams rlp2=new RelativeLayout.LayoutParams(widthhh2,hifhtttt2);

    rlp2.setMargins(left2, topmyvi, 0, 0);
    relativeLayout.addView(I2,rlp2);





    ImageView b1=new ImageView(this);
    if(erasedrawable!= null) {
         eraseBitmap.recycle();
        erasedrawable= null;
         }
      eraseBitmap=BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.eraser_501));
   erasedrawable = new BitmapDrawable(eraseBitmap); 
   b1.setBackgroundDrawable(erasedrawable);

    int leftb1=(int)(650*(screenWidth/1024));
   int topb1=(int)(10*(screenHeight/600));
 int widtb1=(int)(100*(screenWidth/1024));
 int hightb1=(int)(100*(screenHeight/600));

 RelativeLayout.LayoutParams rlp3=new RelativeLayout.LayoutParams(widtb1,hightb1);
 rlp3.setMargins(leftb1, topb1, 0, 0);
 relativeLayout.addView(b1,rlp3);

            b1.setOnClickListener(new OnClickListener() {

  //        @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
         try{

                mBitmap.eraseColor(android.graphics.Color.TRANSPARENT);
                Canvas Canvas=new Canvas(mBitmap);

                action=true;
            myview.onDraw(Canvas);

                }catch(IllegalStateException ie){
                    ie.printStackTrace();
                }
    }
});

  int lefth1=(int)(830*(screenWidth/1024));
  int toph1=(int)(35*(screenHeight/600));
int width1=(int)(60*(screenWidth/1024));
int highth1=(int)(60*(screenHeight/600));
horn=new ImageView(this);

if(sounddrawable!= null) {
     soundbitmap.recycle();
    sounddrawable= null;
      }
soundbitmap=BitmapFactory.decodeStream(getResources().openRawResource( R.drawable.horn));
sounddrawable = new BitmapDrawable(soundbitmap); 
horn.setBackgroundDrawable(sounddrawable);


  RelativeLayout.LayoutParams hn=new RelativeLayout.LayoutParams(width1,highth1);
  hn.setMargins(lefth1,toph1,0,0);
  relativeLayout.addView(horn,hn);

  horn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(mediay2==null)
            {

             mediay2 = MediaPlayer.create(DesignofatozActivity.this, R.raw.hwprepsheets);

            }
             mediay2.start();
        if(mediay2!=null)
        {

        }

        }

    });

  ImageView next=(ImageView)findViewById(R.id.imv1a);

  if(fwddrwable!= null) {
   fwdbitmap.recycle();
       fwddrwable= null;
            }

  fwdbitmap=BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.next_50));
      fwddrwable = new BitmapDrawable(fwdbitmap); 
      next.setBackgroundDrawable(fwddrwable);
  RelativeLayout.LayoutParams layoutnxt= (RelativeLayout.LayoutParams) next.getLayoutParams();     
  layoutnxt.height=(int)(30*(screenHeight/600));  
  layoutnxt.width=(int)(50*(screenWidth/1024));
  next.setOnClickListener(new OnClickListener() {

 //         @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Log.i("next","next");
            Intent i =new Intent(DesignofatozActivity.this,Dots.class);
            startActivity(i);
        }   
    });
  ImageView back=(ImageView)findViewById(R.id.back);

  if(backdrwable!= null) {
   backbitmap.recycle();
   backdrwable= null;
       }

  backbitmap=BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.back1_50));
  backdrwable = new BitmapDrawable(backbitmap); 
  back.setBackgroundDrawable(backdrwable);
  RelativeLayout.LayoutParams layoutbak= (RelativeLayout.LayoutParams) back.getLayoutParams();     
  layoutbak.height=(int)(30*(screenHeight/600));  
  layoutbak.width=(int)(50*(screenWidth/1024));
  back.setOnClickListener(new OnClickListener() {

    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Intent i =new Intent(DesignofatozActivity.this,Slantlines.class);
        startActivity(i);
    }
});

    mPaint = new Paint();
    mPaint.setAntiAlias(true);
    mPaint.setDither(true);
    //mPaint.setColor(0xFFFF0000);
    mPaint.setColor(Color.BLACK);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setStrokeJoin(Paint.Join.ROUND);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
    mPaint.setStrokeWidth(6);


 }



private void setNoTitle() {
    // TODO Auto-generated method stub
    requestWindowFeature(Window.FEATURE_NO_TITLE);
}
 private Paint       mPaint;
  private Bitmap  mBitmap;

    public void colorChanged(int color) {
        mPaint.setColor(color);
    }

    public class MyView extends View
    {

            private Canvas  mCanvas;
            private Path    mPath;
            private Paint   mBitmapPaint;

        public MyView(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
             mPath = new Path();
                mBitmapPaint = new Paint(Paint.DITHER_FLAG);
        }
         @Override
            protected void onSizeChanged(int w, int h, int oldw, int oldh)       {
                super.onSizeChanged(w, h, oldw, oldh);
                if (mBitmap != null) {
                    mBitmap.recycle();
                    mBitmap=null;
                 }

                mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
                mCanvas = new Canvas(mBitmap);
                mCanvas.setBitmap(mBitmap);


            }


          @Override
            protected void onDraw(Canvas canvas) {

              if(action)
              {
                  invalidate();
              }

              Paint painto = new Paint();
               painto.setAntiAlias(true);


               painto.setStrokeWidth(3);
               painto.setStyle(Paint.Style.FILL);


              int leftx1=(int)(15*(screenWidth/1024));
                 int leftx2=(int)(1010*(screenWidth/1024));
                    int topy1=(int)(60*(screenHeight/600));
                    int topy2=(int)(530*(screenHeight/600));

                       canvas.drawLine(leftx1, topy1, leftx2, topy1, painto);   
                       canvas.drawLine(leftx1, topy1, leftx1, topy2, painto);
                       canvas.drawLine(15, topy2, leftx2, topy2, painto);
                       canvas.drawLine(leftx2, topy1, leftx2, topy2, painto);


            bitmapOrg = BitmapFactory.decodeResource(getResources(),
                        R.drawable.circles1_4);
            int leftorg=(int)(150*(screenWidth/1024));
            int toporg=(int)(110*(screenHeight/600));
              canvas.drawBitmap(bitmapOrg, leftorg, toporg, painto);

              bitmapOrg.recycle();
              bitmapOrg=null;

              bitmapOrg1 = BitmapFactory.decodeResource(getResources(),
                        R.drawable.circles1_5);
              int leftorg1=(int)(430*(screenWidth/1024));
                int toporg1=(int)(130*(screenHeight/600));
               canvas.drawBitmap(bitmapOrg1, leftorg1,toporg1, painto);
               bitmapOrg1.recycle();
                  bitmapOrg1=null;

       bitmapOrg2 = BitmapFactory.decodeResource(getResources(),
                        R.drawable.circles1_6);
       int leftorg2=(int)(650*(screenWidth/1024));
               canvas.drawBitmap(bitmapOrg2, leftorg2,toporg, painto);

               bitmapOrg2.recycle();
                  bitmapOrg2=null;
         bitmapOrg3 = BitmapFactory.decodeResource(getResources(),
                        R.drawable.circles1_1);
         int leftorg3=(int)(170*(screenWidth/1024));
         int toporg3=(int)(350*(screenHeight/600));
               canvas.drawBitmap(bitmapOrg3, leftorg3,toporg3, painto);
               bitmapOrg3.recycle();
                  bitmapOrg3=null;
              bitmapOrg4 = BitmapFactory.decodeResource(getResources(),
                        R.drawable.circles1_3);
              int leftorg4=(int)(680*(screenWidth/1024));
               canvas.drawBitmap(bitmapOrg4, leftorg4,toporg3, painto);

                  bitmapOrg4.recycle();
                  bitmapOrg4=null;
            bitmapOrg5 = BitmapFactory.decodeResource(getResources(),
                        R.drawable.circles1_2);

            int leftorg5=(int)(400*(screenWidth/1024));
             int toporg5=(int)(300*(screenHeight/600));
               canvas.drawBitmap(bitmapOrg5, leftorg5,toporg5, painto);

               bitmapOrg5.recycle();
                  bitmapOrg5=null;
               Paint paint1 = new Paint();
                paint1.setAntiAlias(true);
                paint1.setColor(Color.BLACK);
                paint1.setStrokeWidth(3);
                paint1.setStyle(Paint.Style.FILL);
                paint1.setTextSize(13);
                canvas.drawText("Get  ready  to  write  place  your  pen  on  the  dot  and  follow  direction ", 120, 20, paint1);
                canvas.drawText("indicated  by  the  arrow . ", 120, 38, paint1);


                Paint p = new Paint();
                p.setAntiAlias(true);
                p.setTextSize(120);
                p.setColor(Color.LTGRAY);
                Typeface font = Typeface.createFromAsset(getAssets(), "font/KINDTRG.TTF"); 


                p.setTypeface(font);            



               canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);

                canvas.drawPath(mPath, mPaint); 


       }  private float mX, mY;
        private  final float TOUCH_TOLERANCE = 2;

     private void touch_start(float x, float y) {
      mPath.reset();
        mPath.moveTo(x, y);
            mX = x;
     mY = y;
     }
     private void touch_move(float x, float y) {
     float dx = Math.abs(x - mX);
    float dy = Math.abs(y - mY);
   if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
           mPath.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
       mX = x;
        mY = y;
     }
  }
    private void touch_up() {
        mPath.lineTo(mX, mY);
         // commit the path to our offscreen
        mCanvas.drawPath(mPath, mPaint);
 // kill this so we don't double draw
      mPath.reset();
      }

   @Override
   public boolean onTouchEvent(MotionEvent event) {
         float x = event.getX();
         y = event.getY();

  switch (event.getAction()) {
  case MotionEvent.ACTION_DOWN:
      touch_start(x, y);
      invalidate();
      break;
  case MotionEvent.ACTION_MOVE:
      touch_move(x, y);
      invalidate();
      break;
  case MotionEvent.ACTION_UP:
      touch_up();
      invalidate();
      break;
  }
   return true;
  }


   }
    public void clearAllResources() {

        // Set related variables null

        System.gc();
        Runtime.getRuntime().gc();
       }

      @Override
        protected void onPause() {

            if (mediay2 != null){
                mediay2.stop();
                mediay2.release();
                mediay2=null;
          }

            clearAllResources();
            super.onPause();
        }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        System.gc();
        Runtime.getRuntime().gc(); 
        unbindDrawables(findViewById(R.id.relative));
    }

        private void unbindDrawables(View view) {
        // TODO Auto-generated method stub
         if (view.getBackground() != null) {
             view.getBackground().setCallback(null);
         }
         if (view instanceof ViewGroup) {
             for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
                 unbindDrawables(((ViewGroup) view).getChildAt(i));
             }
             ((ViewGroup) view).removeAllViews();
         }
        }
        @Override
            protected void onResume() {
                // TODO Auto-generated method stub
                super.onResume();

            }

    }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T21:32:17+00:00Added an answer on June 13, 2026 at 9:32 pm

    You use memory heap more than gcc allowed size. You must use slaced bitmaps
    or
    +3.0 in manifest add application

    android:largeHeap=”true” to allocate more heap size.

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:largeHeap="true">...
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Possible Duplicate: Can i save lots of bitmaps to one bitmap? (2d) I wonder
Possible Duplicate: Transparent images with C# WinForms I am coding an app which will
Possible Duplicate: Combine two Images into one new Image I have a c# code
Possible Duplicate: How do you send email from a Java app using Gmail? How
Possible Duplicate: Fast way to convert a Bitmap into a Boolean array in C#?
Possible Duplicate: How do I make a request using HTTP basic authentication with PHP
Possible Duplicate: How to render bitmap into canvas in WPF? What I want is
Possible Duplicate: Matching a rotated bitmap to a collage image Given an image with
Possible Duplicate: Can’t create handler inside thread that has not called Looper.prepare() inside AsyncTask
Possible Duplicate: get current latitude and longitude from gps enabled device I use the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.