destroy consume memory by imageview
I replace multiple image in imageview at particular time(2second).image are stay in drawable folder.and application are in 1.5.
now i would like destroy previous image while display second.so can free memory easily. any one help me?Thanks
nikupdate ::
package com.TouchSigns;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Typeface;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class tranning extends Activity {
/** Called when the activity is first created. */
CountDownTimer tns_DCounter;
Bitmap bm;
ImageButton tran_btn_skip;
TextView tran_banner;
Intent tranningIntent, tranningIntent2;
ImageView tran_imgwv_anim_image, tran_imgwv_playnow;
private MediaPlayer xmPlayer2, xmPlayer3, xmPlayer4, xmPlayer5, xmPlayer6,
xmPlayer7,xmPlayer8,xmPlayer9,xmPlayer10,xmPlayer11;
CountDownTimer aCounter, aCounter2, aCounter3, aCounter4, aCounter5,
aCounter6, aCounter7,aCounter8,aCounter9,aCounter10,aCounter11;
Boolean flag = false;
Typeface face;
TouchSigns shaneshAv = new TouchSigns();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tranning);
{
try
{
tran_banner = (TextView) findViewById(R.id.tran_banner);
tran_btn_skip = (ImageButton) findViewById(R.id.tran_btn_skip);
tran_imgwv_playnow = (ImageView) findViewById(R.id.tran_imgwv_playnow);
tran_imgwv_anim_image = (ImageView) findViewById(R.id.tran_imgwv_anim_image);
xmPlayer2 = MediaPlayer.create(this, R.raw.bike_route);
xmPlayer3 = MediaPlayer.create(this, R.raw.closed);
xmPlayer4 = MediaPlayer.create(this, R.raw.exit);
xmPlayer5 = MediaPlayer.create(this, R.raw.no_parking);
xmPlayer6 = MediaPlayer.create(this, R.raw.one_way);
xmPlayer7 = MediaPlayer.create(this, R.raw.phone);
xmPlayer8 = MediaPlayer.create(this, R.raw.rail_road_crossing);
xmPlayer9 = MediaPlayer.create(this, R.raw.sale);
xmPlayer10 = MediaPlayer.create(this, R.raw.stop);
xmPlayer11 = MediaPlayer.create(this, R.raw.turn_off_tap);
tranningIntent = new Intent(this, touch_and_show.class);
animmation();
/*tran_btn_exit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
System.exit(0);
}
});*/
tran_btn_skip.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try
{
flag = true;
/*xmPlayer2.stop();
xmPlayer3.stop();
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();*/
startActivity(tranningIntent);
tranningIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
finish();
}catch (Exception e) {
}
}
});
System.out.println(flag);
face = Typeface.createFromAsset(this.getAssets(),
"fonts/comic.TTF");
}catch (Exception e) {
}
}
}
public void animmation() {
try
{
if(flag==true)
{
try
{
xmPlayer2.stop();
xmPlayer3.stop();
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}catch (Exception e) {
}
}
else
{
aCounter = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
xmPlayer2.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Route Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_bike_route);
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_bike_route);
tran_imgwv_anim_image.setImageBitmap(bm);
}
public void onFinish() {
if(flag==true)
{ try{
xmPlayer2.stop();
xmPlayer3.stop();
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter2 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer2.release();
xmPlayer3.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Closed Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_closed);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_closed);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
// TODO: handle exception
}
}
public void onFinish() {
if(flag==true)
{
try
{
xmPlayer3.stop();
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter3 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer3.release();
xmPlayer4.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Exit Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_exit);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_exit);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
}
}
public void onFinish() {
if(flag==true)
{
try{
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter2.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter4 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer4.release();
xmPlayer5.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("No Parking Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_no_parking);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_no_parking);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
}
}
public void onFinish() {
if(flag==true)
{
try
{
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter5 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer5.release();
xmPlayer6.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("One Way Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_oneway);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_oneway);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
// TODO: handle exception
}
}
public void onFinish() {
if(flag==true)
{
try
{
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter6 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer6.release();
xmPlayer7.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Phone Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_phone);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_phone);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
// TODO: handle exception
}
}
public void onFinish() {
if(flag==true)
{
try
{
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter7 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer7.release();
xmPlayer8.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Rail Crossing Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_rail_crossing);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_rail_crossing);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
// TODO: handle exception
}
}
public void onFinish() {
if(flag==true)
{
try
{
xmPlayer2.stop();
xmPlayer3.stop();
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter8.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter8 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer8.release();
xmPlayer9.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Sale Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_sale);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_sale);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
}
}
public void onFinish() {
if(flag==true)
{
try
{
xmPlayer2.stop();
xmPlayer3.stop();
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter9.cancel();
aCounter11.cancel();
}
catch (Exception e) {
// TODO: handle exception
}
}
else
{
aCounter9 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer9.release();
xmPlayer10.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Stop Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_stop);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_stop开发者_StackOverflow社区);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
// TODO: handle exception
}
}
public void onFinish() {
if(flag==true)
{
try
{
xmPlayer2.stop();
xmPlayer3.stop();
xmPlayer4.stop();
xmPlayer5.stop();
xmPlayer6.stop();
xmPlayer7.stop();
xmPlayer8.stop();
xmPlayer9.stop();
xmPlayer10.stop();
xmPlayer11.stop();
aCounter.cancel();
aCounter10.cancel();
aCounter2.cancel();
aCounter3.cancel();
aCounter4.cancel();
aCounter5.cancel();
aCounter6.cancel();
aCounter7.cancel();
aCounter8.cancel();
aCounter11.cancel();
}
catch (Exception e) {
}
}
else
{
aCounter10 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
try
{
xmPlayer10.release();
xmPlayer11.start();
tran_banner.setTypeface(face, Typeface.BOLD);
tran_banner.setText("Turn off Tap Sign");
//tran_imgwv_anim_image.setImageResource(R.drawable.sm_turn_off);
bm.recycle();
bm = BitmapFactory.decodeResource(getResources(),R.drawable.sm_turn_off);
tran_imgwv_anim_image.setImageBitmap(bm);
}catch (Exception e) {
}
}
public void onFinish() {
aCounter11 = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
invisibleControl();
}
public void onFinish() {
try {
/*xmPlayer2
.stop();
xmPlayer3
.stop();
xmPlayer4
.stop();
xmPlayer5
.stop();
xmPlayer6
.stop();
xmPlayer7
.stop();*/
aCounter.cancel();
aCounter2
.cancel();
aCounter3
.cancel();
aCounter4
.cancel();
aCounter5
.cancel();
aCounter6
.cancel();
startActivity(tranningIntent);
finish();
}catch (Exception e) {
}
}}; aCounter11.start();
}
}; aCounter10.start();
}//else
}
}; aCounter9.start();
}//else
}
}; aCounter8.start();
}//else
}
}; aCounter7.start();
}//else
}
}; aCounter6.start();
}//else
}
}; aCounter5.start();
}//else
}
}; aCounter4.start();
}//else
}
}; aCounter3.start();
}//else
}
};
aCounter2.start();
}//second else
}}; aCounter.start();
}
}catch (Exception e) {
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
try
{ flag=true;
stopService(new Intent(this, backServices.class));
finish();
}catch (Exception e) {
}
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onDestroy() {
super.onDestroy();
try
{
xmPlayer2.release();
xmPlayer3.release();
xmPlayer4.release();
xmPlayer5.release();
xmPlayer6.release();
xmPlayer7.release();
xmPlayer8.release();
xmPlayer9.release();
xmPlayer10.release();
xmPlayer11.release();
System.gc();
}catch (Exception e) {
}
}
private void invisibleControl() {
RelativeLayout r;
LinearLayout trans_linearll;
trans_linearll = (LinearLayout) findViewById(R.id.trans_linearll);
r = (RelativeLayout) findViewById(R.id.rela_tranning);
r.setBackgroundResource(R.drawable.playnow);
tran_btn_skip.setVisibility(View.INVISIBLE);
trans_linearll.setVisibility(View.INVISIBLE);
tran_banner.setVisibility(View.INVISIBLE);
tran_imgwv_anim_image.setVisibility(View.INVISIBLE);
/* tran_imgwv_playnow.setVisibility(View.VISIBLE);*/
}
}
Java has garbage collector. Objects will be deleted automatically when you no longer use them. You don't need to do anything.
However if you want to speed this up, then have a look at:
Bitmap.recycle()
http://developer.android.com/reference/android/graphics/Bitmap.html#recycle%28%29
Bitmap myBitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.myImage1);
imageView.setImageBitmap(myBitmap1);
/* ... */
Bitmap myBitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.myImage2);
imageView.setImageBitmap(myBitmap2);
myBitmap1.recycle(); // Don't need myBitmap1 anymore
精彩评论