一段小程序 代码如下
public class ERecipesActivity extends Activity implements OnGestureListener {
private static final String TAG = "ERecipes";
private static final int LIMIT = 3;
private static boolean isStart = false;
private static boolean direction = true; private GestureDetector detector;
private ImageView imgView;
private ViewFlipper flipper;
private List<String> img_files;
private List<String> menuPhotos;
private MyGallery gallery;
private String basePath = "/sdcard/image_dish/";
private String folder;
private List<ImageView> imageViewList = new ArrayList();
private Handler handler;
private int dishMenuId;
private int current;
private int dishMax;
private int itemSize; @Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
} public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
ExitVer alertDialog = new ExitVer(ERecipesActivity.this);
alertDialog.setTitle("退出");
alertDialog.show(); // 显示对话框
return false;
}
return false;
} HandlerThread localHandlerThread;
Handler hand; private void huilurry() {
localHandlerThread = new HandlerThread("huilurry");
localHandlerThread.start();
hand = new Handler(localHandlerThread.getLooper());
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
} /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); handler = new Handler() {
public void handleMessage(Message msg) {
flipper.destroyDrawingCache();
flipper.removeAllViews();
for (int i = 0; i < imageViewList.size(); i++) {
flipper.addView(imageViewList.get(i));
imageViewList.get(i);
}
int state = msg.getData().getInt("state");
Log.i(TAG, "state=" + state);
if (state == 1)
flipper.setDisplayedChild(itemSize - 1);
else
flipper.setDisplayedChild(0);
}
}; LinearLayout mainLayout = (LinearLayout) findViewById(R.id.mainLayout);
mainLayout.setBackgroundDrawable(Drawable.createFromPath(basePath
+ "bak/bak.jpg")); detector = new GestureDetector(this);
flipper = (ViewFlipper) findViewById(R.id.ViewFlipper01);
flipper.setMeasureAllChildren(false);
menuPhotos = ImageManager.listPhoto(basePath, "");
Log.i(TAG, "menu size: " + menuPhotos.size());
ImageAdapter xadapter = new ImageAdapter(ERecipesActivity.this,
menuPhotos, menuPhotos.size()); gallery = (MyGallery) findViewById(R.id.gallery1);
gallery.setAdapter(xadapter);
gallery.setSpacing(15);

gallery.setOnItemClickListener(new DishTypeItemListener());

Log.i(TAG, "onCreate");

        huilurry();
} public void Update(int id, boolean update, boolean dir) {
if (isStart)
return; direction = dir;
if (!update) {
dishMenuId = (int) id;
current = 0;
dishMax = 0;
Log.i(TAG, "menu id: " + id);
String foldername = menuPhotos.get(dishMenuId).substring(0,
menuPhotos.get(dishMenuId).indexOf("."));
folder = foldername;
if (ImageManager.isHavePhoto(basePath, foldername)) {
final ProgressDialog dialog = new ProgressDialog(
ERecipesActivity.this);
dialog.setMessage("请等待加载数据 ...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
Thread t = new Thread(new Runnable() { @Override
public void run() { // 从SD卡加载图片
imageViewList.clear();
String foldername = menuPhotos
.get(dishMenuId)
.substring(0,
menuPhotos.get(dishMenuId).indexOf("."));
img_files = ImageManager
.listPhoto(basePath, foldername);
if (img_files.size() > 0) {
dishMax = img_files.size();
int s = img_files.size() > LIMIT ? LIMIT
: img_files.size();
for (int i = 0; i < s; i++) {
imgView = new ImageView(ERecipesActivity.this);
imgView.setImageBitmap(ImageManager
.getImageFromSDCard(basePath
+ foldername + "/"
+ img_files.get(i)));

imageViewList.add(imgView);
}
}
// 发送消息给主线程
Message msg = handler.obtainMessage();
Bundle b = new Bundle();
b.putInt("state", 0);
msg.setData(b);
handler.sendMessage(msg);
dialog.dismiss();
isStart = false;
}
});
if (!isStart) {
t.start();
isStart = true;
}
} else {
Toast.makeText(ERecipesActivity.this, "此项下无内容!",
Toast.LENGTH_SHORT).show();
}
} else {
final ProgressDialog dialog = new ProgressDialog(
ERecipesActivity.this);
dialog.setMessage("请等待加载数据 ...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show(); Thread t = new Thread(new Runnable() {
@Override
public void run() {
imageViewList.clear();
int tmp = current * LIMIT;
int s;
if (tmp > dishMax) {
current = 0;
tmp = 0;
}
s = dishMax - tmp > LIMIT ? tmp + LIMIT : dishMax;
itemSize = s - tmp;
Log.i(TAG, "itemSize=" + itemSize);
Log.i(TAG, "s=" + s + "tmp=" + tmp);
for (int i = tmp; i < s; i++) {
imgView = new ImageView(ERecipesActivity.this);
imgView.setImageBitmap(ImageManager
.getImageFromSDCard(basePath + folder + "/"
+ img_files.get(i)));
imageViewList.add(imgView);
} Message msg = handler.obtainMessage();
Bundle b = new Bundle();
if (direction)
b.putInt("state", 0);
else
b.putInt("state", 1);
msg.setData(b);
handler.sendMessage(msg);
dialog.dismiss();
isStart = false;
}
}); if (!isStart) {
t.start();
isStart = true;
}
}
} class DishTypeItemListener implements OnItemClickListener { public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {
Update((int) id, false, true);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {

return this.detector.onTouchEvent(event);
} @Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
if (isStart)
return false; Log.i(TAG, "flipper index=" + flipper.getDisplayedChild());
Log.i(TAG, "flipper child count=" + flipper.getChildCount());
if (e1.getX() - e2.getX() > 120) {
if (dishMax > LIMIT
&& flipper.getDisplayedChild() >= flipper.getChildCount() - 1) {
current += 1;
Update(dishMenuId, true, true);
return true;
} this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
this.flipper.showNext();
return true;
} else if (e1.getX() - e2.getX() < -120) {
if (dishMax > LIMIT && flipper.getDisplayedChild() < 1) {
current -= 1;
if (current < 0) {
current = dishMax / LIMIT;
}
Update(dishMenuId, true, false);
return true;
}
this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_in));
this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_right_out));
this.flipper.showPrevious();
return true;
}
return false;
}现在想要实现点击某一张下面所显示出的图片就播放一段视频,具体应该如何做?跪求各位大神帮忙。在线急等!!