我在显示画廊视图中选择的图像预览时遇到问题。我有一个来自 sd 卡的图像库,单击图像时,其预览应显示在库视图下方(不是通过意图进行的单独活动)。我可以显示带有图像的画廊,但单击图像时没有任何反应。
公共类 NewActivity 扩展 Activity {
GalleryBaseAdapter myGalleryBaseAdapter;
Gallery myPhotoGallery;
int[] mFiles = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);      
    myPhotoGallery = (Gallery)findViewById(R.id.photogallery);
    myGalleryBaseAdapter = new GalleryBaseAdapter(this);
    String ExternalStorageDirectoryPath = Environment.getExternalStorageDirectory().getAbsolutePath();
    String path = ExternalStorageDirectoryPath;
    String  files;
    File  folder = new File (path);
    final File[] listOfFiles = folder.listFiles(); 
    for (int i = 0; i < listOfFiles.length; i++) 
    {       
         if (listOfFiles[i].isFile()) 
         {
             files = listOfFiles[i].getName();
             System .out.println(files);
         }
    }
    for (File file : listOfFiles) {
        myGalleryBaseAdapter.add(file.getPath());
    }        
    myPhotoGallery.setAdapter(myGalleryBaseAdapter);       
    myPhotoGallery.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView parent, View v, int position, long id) {
            mFiles = new int[listOfFiles.length];       
            ImageView imageview = (ImageView)findViewById(R.id.imageView1);     
            Bitmap bitmapImage = BitmapFactory.decodeFile("/sdcard/" + mFiles[position]);
            imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageview.setImageBitmap(bitmapImage); 
        }                   
    });
}
public class GalleryBaseAdapter extends BaseAdapter {
    ArrayList<String> GalleryFileList;
    Context context;
    GalleryBaseAdapter(Context cont){
        context = cont;
        GalleryFileList = new ArrayList<String>();    
    }
    @Override
    public int getCount() {
        return GalleryFileList.size();
    }
    @Override
    public Object getItem(int position) {
        return GalleryFileList.get(position);
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Bitmap bm = BitmapFactory.decodeFile(GalleryFileList.get(position));
        LinearLayout layout = new LinearLayout(context);
        layout.setLayoutParams(new Gallery.LayoutParams(150, 150));
        layout.setGravity(Gravity.CENTER);
        ImageView imageView = new ImageView(context);
        imageView.setLayoutParams(new Gallery.LayoutParams(200, 200));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setImageBitmap(bm);
        layout.addView(imageView);
        return layout;
    }
    public void add(String newitem){
        GalleryFileList.add(newitem);
    }
}
}
谁能告诉我我的代码中的错误是什么。提前致谢。