2013-04-17 72 views
0

如何在文件列表中顯示圖像?這是我的代碼,只顯示圖標我想顯示真實圖像而不是圖標我該怎麼做?請幫助我,我如何顯示GridView的真實圖像,請幫我如何在文件目錄中顯示列表視圖中的實際圖像

 private void inflateListView(File[] files){ 
    List<Map<String,Object>> listItems=new ArrayList<Map<String,Object>>(); 
    for(int i=0;i<files.length;i++){ 
     Map<String, Object> listItem=new HashMap<String, Object>(); 

     if(files[i].isDirectory()){ 

      listItem.put("icon", R.drawable.folder); 

     } 
     else 
     { 
      listItem.put("icon", R.drawable.file); 
     } 
     listItem.put("fileName", files[i].getName()); 
     listItems.add(listItem); 
    } 
    SimpleAdapter simpleAdapter=new SimpleAdapter(this,listItems,R.layout.line,new 
String[]{"icon","fileName"},new int[]{R.id.icon,R.id.file_name}); 
    gridView.setAdapter(simpleAdapter); 

} 

回答

0

獲取文件的路徑將其存放在數組列表。有一個自定義適配器。使用路徑在grdiview中顯示圖像。

我建議你使用通用圖像裝載機

說明:

  1. 得到一個文件夾下的文件的路徑。 (假設該文件夾只有圖像)。將它存儲在一個ArrayList中。將數組列表和活動上下文傳遞給您的適配器構造器

  2. 有一個CustomAdapter說MyAdapter擴展了BaseAdapter。根據位置爲每行填充自定義佈局並顯示圖像。

  3. 使用通用圖像裝載機如下

https://github.com/nostra13/Android-Universal-Image-Loader

ArrayList<String> f= new ArrayList<String> 
private File[] listFile; 

public void getFromSdcard() 
{ 
    File file= new File(android.os.Environment.getExternalStorageDirectory(),"TTImages_cache"); 

     if (file.isDirectory()) 
     { 
      listFile = file.listFiles(); 

      for (int i = 0; i < listFile.length; i++) 
      { 

       f.add(listFile[i].getAbsolutePath()); 

      } 
     } 
} 


    adapter=new LazyAdapter(Activity.this,thumb); 
gridView.setAdapter(adapter); 

在你CustomAdapter

private Activity activity; 
private ArrayList<String> data = new ArrayList<String>(); 
private LayoutInflater inflater=null; 
public ImageLoader imageLoader; 
DisplayImageOptions options; 

public LazyAdapter(Activity a, ArrayList<String> d) { 
    activity = a; 
    data=d; 
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    File cacheDir = StorageUtils.getOwnCacheDirectory(a, "MyRaghu"); 


// Get singletone instance of ImageLoader 
    imageLoader = ImageLoader.getInstance(); 
// Create configuration for ImageLoader (all options are optional) 
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(a) 
       // You can pass your own memory cache implementation 
      .discCacheExtraOptions(1024, 1024, CompressFormat.PNG, 100) 
      .discCache(new UnlimitedDiscCache(cacheDir)) // You can pass your own disc cache implementation 
      .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) 
      .enableLogging() 
      .build(); 
// Initialize ImageLoader with created configuration. Do it once. 
imageLoader.init(config); 
    //imageLoader.init(ImageLoaderConfiguration.createDefault(a)); 
    // imageLoader=new ImageLoader(activity.getApplicationContext()); 
    options = new DisplayImageOptions.Builder() 
    .showStubImage(R.drawable.ic_launcher) 
    .cacheInMemory() 
    .cacheOnDisc() 
    .displayer(new RoundedBitmapDisplayer(20)) 
    .build(); 
    } 

在你getView

public View getView(int position, View convertView, ViewGroup parent) { 
    View vi=convertView; 
    if(convertView==null) 
    vi = inflater.inflate(R.layout.rowimage, null); 

    ImageView image=(ImageView)vi.findViewById(R.id.ivv); 
    ProgressBar pb= (ProgressBar)vi.findViewById(R.id.pb); 
    //imageLoader.displayImage(data.get(position).toString(), image,options); 

    return vi; 
} 
+0

不理解,請粗糙地accroding我的代碼plzzzzz –

相關問題