package com.mcxtzhang.viewpagerdemo.optimise; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import com.mcxtzhang.viewpagerdemo.R; public class ImageTestActivity extends AppCompatActivity { protected Button mButton; protected ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_image_test); mButton = (Button) findViewById(R.id.button); mImageView = (ImageView) findViewById(R.id.image); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showImage(); } }); mButton.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { clearImage(); return true; } }); findViewById(R.id.jump).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mHandler.postDelayed(autoCleanRunable, 5000); startActivity(new Intent(ImageTestActivity.this, EmptyActivity.class)); } }); } Bitmap bitmap; protected void clearImage() { bitmap = null; mImageView.setImageBitmap(bitmap); } protected void showImage() { if (null == bitmap) { Drawable background = /*getApplicationContext().*/getResources().getDrawable(R.drawable.big); BitmapDrawable bd = (BitmapDrawable) background; bitmap = bd.getBitmap(); } mImageView.setImageBitmap(bitmap); } Handler mHandler = new Handler(); boolean isClear; Runnable autoCleanRunable = new Runnable() { @Override public void run() { clearImage(); isClear = true; Toast.makeText(ImageTestActivity.this, "自动清理成功", Toast.LENGTH_SHORT).show(); } }; @Override protected void onStop() { super.onStop(); } @Override protected void onStart() { super.onStart(); mHandler.removeCallbacks(autoCleanRunable); if (isClear) { isClear = false; showImage(); } } }