我将此图像列表提供程序更改为缩略图提供程序时遇到问题。如有需要,我也会为它发布视图。
public Object[] getElements(Object inputElement) {
        if (iDirname == null)
            return null;
        File dir = new File(iDirname);
        FilenameFilter filter = new FilenameFilter() {
            public boolean accept(File directory, String filename) {
                if (filename.endsWith("jpg") || (filename.endsWith("bmp")) || (filename.endsWith("png") || (filename.endsWith("JPG") || (filename.endsWith("BMP")) || (filename.endsWith("PNG")))))
                    return true;
                else
                    return false;
            }
        };
        String[] dirList = null;
        if (dir.isDirectory()) {
            dirList = dir.list(filter);
            for (int i=0; i<dirList.length;++i){
                //dirList2[i] = new Image(device, dirList2[i]); added this to try passing array of Images - failed.
                dirList[i] = iDirname + File.separatorChar + dirList[i];
            }
        }
        return dirList;
    }
和视图
public void createPartControl(Composite parent) {
        iViewer = new ListViewer(parent);
        iViewer.setContentProvider(new DirListProvider());
        getSite().setSelectionProvider(iViewer);
        makeActions();
        hookContextMenu();
        contributeToActionBars();
    }
我不知道如何将提供的路径列表更改为缩略图显示。我应该将提供的内容放入 Array 并遍历它以创建图像吗?如果有怎么办?
在此先感谢您的帮助。
编辑:
我添加了
ImageDescriptor[] dirList = null;
        if (dir.isDirectory()) {
            String[] dirList2 = dir.list(filter);
            for (int i=0; i<dirList2.length;++i){
                dirList[i] = ImageDescriptor.createFromImageData(new ImageData(iDirname + File.separatorChar + dirList2[i]));
                //dirList[i] = iDirname + File.separatorChar + dirList[i];
            }
        }
        return dirList;
但这根本没有显示任何内容。
当您告诉我使用Composite时,它是我的父变量吗?我仍然不知道如何显示经过的路径中的图像ListProvider。我在这方面真的很绿色:/