জনপ্রিয় পোস্টসমূহ

শনিবার, ৯ জুন, ২০১২

Android PinchImage View Tutorial For Update 2.1 Supported



Android Gesture Tutorial


package com.droidbd.rjradio;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;

import com.droidbd.parser.EventParser;
import com.droidbd.utils.AlertMessage;
import com.droidbd.utils.AllURL;
import com.droidbd.utils.CacheImageDownloader;
import com.droidbd.utils.SharedPreferencesHelper;
import com.joboon.holder.AllEvent;
import com.joboon.model.Event;

public class EventsActivity extends Activity implements OnGestureListener {

private Context context;

private ImageView eventImage;
Bitmap defaultBit;

private ProgressDialog pDialog;

private int pos = 0;

private CacheImageDownloader imageDownloader;

private GestureDetector detector;

private final int swipe_Min_Distance = 80;
private final int swipe_Max_Distance = 350;
private final int swipe_Min_Velocity = 80;
public final static int SWIPE_UP = 1;
public final static int SWIPE_DOWN = 2;
public final static int SWIPE_LEFT = 3;
public final static int SWIPE_RIGHT = 4;
static int option_selected = 0;

// private TextView titleView;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.events);
context = this;
detector = new GestureDetector(this, this);

// titleView = (TextView) findViewById(R.id.Eventttle);
imageDownloader = new CacheImageDownloader();

eventImage = (ImageView) findViewById(R.id.EventImageView);

defaultBit = BitmapFactory.decodeResource(getResources(),
R.drawable.icon);
parseQuery();

}

// public void setEventBTEvent(View v) {
// Intent next = new Intent(context, EventsActivity.class);
// startActivity(next);
//
// }
//
// public void setLinkBTEvent(View v) {
// Intent next = new Intent(context, LinkActivity.class);
// startActivity(next);
//
// }
//
// public void setShareBTEvent(View v) {
//
// }

public void setBackBTEvent(View v) {
finish();

}

public void setBackBTEventLeft(View v) {

showPrevScreen();
}

public void setBackBTEventRight(View v) {

showNextScreen();
}

public void parseQuery() {

if (!SharedPreferencesHelper.isOnline(context)) {
AlertMessage.showMessage(context, "Error", "no Internet");
return;
}

pDialog = ProgressDialog.show(this, "Please wait...", "Loading...",
false, false);

/*
*
* log entry now
*/

final Thread d = new Thread(new Runnable() {

@Override
public void run() {

if (EventParser.XMLparse(context, AllURL.ongoingevent)) {

Log.w("size ", "");

}

/*
* update the GUI
*/

runOnUiThread(new Runnable() {

@Override
public void run() {

if (pDialog != null) {
pDialog.cancel();
}

DownloadImageToSetView();

}

});

}
});

d.start();

}

private void DownloadImageToSetView() {
// TODO Auto-generated method stub

try {
if (pos == AllEvent.getAllevent().size()) {
pos--;
return;
}

if (pos < 0) {
pos++;
return;
}

final Event eee = AllEvent.getevent(pos);

// titleView.setText(eee.getEventstitle());

imageDownloader.download(eee.getEventimageurl().trim(), eventImage);

Log.w("Where Image Url for event", eee.getEventimageurl().trim());

} catch (final Exception e) {
// TODO: handle exception
}

}

/*
*
* gesture portion
*/

@Override
public boolean onDown(final MotionEvent e) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean onFling(final MotionEvent e1, final MotionEvent e2,
float velocityX, float velocityY) {
Log.d("---onFling---", e1.toString() + e2.toString());

final float xDistance = Math.abs(e1.getX() - e2.getX());
final float yDistance = Math.abs(e1.getY() - e2.getY());

if (xDistance > swipe_Max_Distance || yDistance > swipe_Max_Distance) {
return false;
}

velocityX = Math.abs(velocityX);
velocityY = Math.abs(velocityY);
boolean result = false;

if (velocityX > swipe_Min_Velocity && xDistance > swipe_Min_Distance) {
if (e1.getX() > e2.getX()) {
Log.d("GESTURE", "Right to left");

showNextScreen();

} else {

Log.d("GESTURE", "Left to right");
showPrevScreen();

}

result = true;

return result;
}
return false;
}

@Override
public void onLongPress(final MotionEvent e) {
// TODO Auto-generated method stub

}

@Override
public boolean onScroll(final MotionEvent e1, final MotionEvent e2,
final float distanceX, final float distanceY) {
// TODO Auto-generated method stub
return false;
}

@Override
public void onShowPress(final MotionEvent e) {
// TODO Auto-generated method stub

}

@Override
public boolean onSingleTapUp(final MotionEvent e) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean onTouchEvent(final MotionEvent me) {
detector.onTouchEvent(me);
return super.onTouchEvent(me);
}

private void showNextScreen() {

pos++;
DownloadImageToSetView();
}

private void showPrevScreen() {
pos--;
DownloadImageToSetView();

}

}