@Override public void onBackPressed() { imageView.setOnTransformListener( new SmoothImageView.TransformListener() { @Override public void onTransformComplete(int mode) { if (mode == 2) { finish(); } } }); imageView.transformOut(); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDatas = getIntent().getStringExtra("images"); mPosition = getIntent().getIntExtra("position", 0); mLocationX = getIntent().getIntExtra("locationX", 0); mLocationY = getIntent().getIntExtra("locationY", 0); mWidth = getIntent().getIntExtra("width", 0); mHeight = getIntent().getIntExtra("height", 0); imageView = new SmoothImageView(this); imageView.setOriginalInfo(mWidth, mHeight, mLocationX, mLocationY); imageView.transformIn(); imageView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1)); imageView.setScaleType(ScaleType.FIT_CENTER); setContentView(imageView); mBitmap = getIntent().getParcelableExtra("bitmap"); imageView.setImageBitmap(mBitmap); Picasso.with(this) .load(mDatas) .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE) .config(Bitmap.Config.RGB_565) .into(imageView); // 减少OOM发生频率,还是会发生OOM,解决方案初步定为开启新进程,通过AIDL来解决 // RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext()); // ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache()); // ImageListener listener = ImageLoader.getImageListener(imageView, R.drawable.ic_launcher, // R.drawable.ic_launcher); // imageLoader.get(mDatas, listener); /* * ImageRequest imageRequest = new ImageRequest(mDatas, new * Response.Listener<Bitmap>() { * * @Override public void onResponse(Bitmap response) { * imageView.setImageBitmap(response); } }, 0, 0, Config.RGB_565, new * Response.ErrorListener() { * * @Override public void onErrorResponse(VolleyError error) { * imageView.setImageResource(R.drawable.ic_launcher); } }); * VolleySingleton * .getVolleySingleton(getApplicationContext()).addToRequestQueue * (imageRequest); */ }