在AndroidManifest配置
<activity android:name=".ui.RealShowImageActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@style/IMTheme.Transparent" android:exported="true" android:screenOrientation="portrait"/>
接着在styles.xml中设置
<style name="IMTheme.Basic" parent="android:Theme.Translucent"> <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@null</item> </style> <style name="IMTheme.Transparent" parent="@style/IMTheme.Basic"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item> </style>点击图片时
Bundle bundle = new Bundle(); int[] location = new int[2]; imageView.getLocationOnScreen(location);//imageView要放大的图片 bundle.putInt("locationX", location[0]); bundle.putInt("locationY", location[1]); bundle.putInt("height", imageView.getHeight()); bundle.putInt("width", imageView.getWidth()); bundle.putString("url",items.getPicture());//图片的url
Intent intent = new Intent(MainActivity.this,RealShowImageActivity.class);
intent.putExtras(bundle);
startActivity(intent);
overridePendingTransition(0, 0);
RealShowImageActivity
public class RealShowImageActivity extends BaseActivity { private int mLocationX; private int mLocationY; private int mWidth; private int mHeight; SmoothImageView imageView = null; String url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLocationX = getIntent().getIntExtra("locationX", 0); mLocationY = getIntent().getIntExtra("locationY", 0); mWidth = getIntent().getIntExtra("width", 0); mHeight = getIntent().getIntExtra("height", 0); url = getIntent().getStringExtra("url"); imageView = new SmoothImageView(this); imageView.setOriginalInfo(mWidth, mHeight, mLocationX, mLocationY); imageView.transformIn(); imageView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1)); imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); setContentView(imageView); ImageLoader imageLoader = TakeOutVolley.getImageLoader(); try { imageLoader.get(url, com.android.volley.toolbox.ImageLoader.getImageListener(imageView, R.drawable.icon_caipin, R.drawable.icon_caipin)); } catch (OutOfMemoryError o) { imageView.setBackgroundResource(R.drawable.icon_caipin); } } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub onBackPressed(); return true; } @Override protected void onPause() { super.onPause(); if (isFinishing()) { overridePendingTransition(0, 0); } } @Override public void onBackPressed() { imageView.setOnTransformListener(new SmoothImageView.TransformListener() { @Override public void onTransformComplete(int mode) { if (mode == 2) { finish(); } } }); imageView.transformOut(); } }