自己折腾了半天,没有搞出来,所以,趁下班之际,提个问题,请大家帮忙解决,感激不尽。
想要的效果是:通过单击屏幕,将Gallery控件显示或隐藏,现在的问题是,由于有了ImageSwitcher触摸屏幕切换图片的功能,单击屏幕的事件不知道如何去获取,如果将imageSwitcher.setOnTouchListener(this)语句注释掉,单击屏幕的事件就可以了。
可运行的代码如下,图片不好上传哦,麻烦大家自己添加图片,帮忙调试一下,谢谢啦:
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
/**
* ImageSwitcherActivity.java
* @author cloay
* 2011-7-16
*/
public class Album extends Activity implements OnItemSelectedListener, ViewFactory, OnTouchListener {
private ImageSwitcher imageSwitcher;
private Gallery gallery;
private int selectedTag = 0;
private int downX, upX;
private GestureDetector gestureScanner;
private Integer [] imagesId = new Integer[]{R.drawable.b, R.drawable.c, R.drawable.d,
R.drawable.f, R.drawable.g};
private Integer [] selectId = new Integer[]{R.drawable.b, R.drawable.c, R.drawable.d,
R.drawable.f, R.drawable.g};
private static final String TAG = "Album";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageSwitcher = (ImageSwitcher)findViewById(R.id.switcher);
imageSwitcher.setFactory(this);
//设置图片切换时的动画效果
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));