2013-04-17 2 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

Получить путь к файлам хранить его в ArrayList. Имейте пользовательский адаптер. Используйте путь для отображения изображений в grdiview.

Я предлагаю вам использовать универсальный образ Loader

Объяснение:

  1. Получить путь к файлам под папкой. (Предположим, что папка имеет только изображения.). Храните его в ArrayList. Передайте arraylist и контекст активности для вашего адаптера.

  2. Имейте CustomAdapter, скажем, MyAdapter расширяет BaseAdapter. Надуйте пользовательский макет для каждой строки и раскройте iamge в соответствии с положением.

  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 –

Смежные вопросы