package whu.iss.activity;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ProgressBar;
import android.widget.ZoomControls;
public class main extends Activity {
/** Called when the activity is first created. */
private ImageZoomView mZoomView;
private ZoomState mZoomState;
private Bitmap mBitmap;
private SimpleZoomListener mZoomListener;
private ProgressBar progressBar;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
progressBar.setVisibility(View.GONE);
mZoomView.setImage(mBitmap);
mZoomState = new ZoomState();
mZoomView.setZoomState(mZoomState);
mZoomListener = new SimpleZoomListener();
mZoomListener.setZoomState(mZoomState);
mZoomView.setOnTouchListener(mZoomListener);
resetZoomState();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
mZoomView = (ImageZoomView) findViewById(R.id.zoomView);
progressBar = (ProgressBar) findViewById(R.id.progress_large);
progressBar.setVisibility(View.VISIBLE);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
/*
* ��������ͼƬ load form url
*/
// mBitmap =
// ImageDownloader.getInstance().getBitmap(url);
mBitmap = BitmapFactory.decodeResource(
main.this.getResources(), R.drawable.earth);
handler.sendEmptyMessage(0);
}
});
thread.start();
ZoomControls zoomCtrl = (ZoomControls) findViewById(R.id.zoomCtrl);
zoomCtrl.setOnZoomInClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
float z = mZoomState.getZoom() + 0.25f;
mZoomState.setZoom(z);
mZoomState.notifyObservers();
}
});
zoomCtrl.setOnZoomOutClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
float z = mZoomState.getZoom() - 0.25f;
mZoomState.setZoom(z);
mZoomState.notifyObservers();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mBitmap != null)
mBitmap.recycle();
// mZoomView.setOnTouchListener(null);
// mZoomState.deleteObservers();
}
private void resetZoomState() {
mZoomState.setPanX(0.5f);
mZoomState.setPanY(0.5f);
mZoomState.setZoom(1f);
mZoomState.notifyObservers();
}
}