2017-01-23 16 views
-1

Я хочу показать изображение в gridview из sdcard directory.i использовать этот код. Но когда я загружаю образ по типу: bitmap.getView в gridview-адаптере нужен Integer [] array.how, я могу это исправить?Gridview изображения из каталога sdcard

public class LoadPic extends Activity { 

Integer[] imageIDs = { 
     R.drawable.user, 
     R.drawable.user, 
     R.drawable.user, 
     R.drawable.user, 
     R.drawable.user, 
     R.drawable.user, 
     R.drawable.user 
}; 

int numberOfImages=0; 
Bitmap[] m; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.load_pic); 


    Intent gett = getIntent(); 


    String _area = gett.getStringExtra("area"); 
    String _domain = gett.getStringExtra("domain"); 
    String _block = gett.getStringExtra("block"); 
    String _melk = gett.getStringExtra("melk"); 
    String _build = gett.getStringExtra("build"); 
    String _apar = gett.getStringExtra("apar"); 
    String _senfi = gett.getStringExtra("senfi"); 




    File dir = new File(Environment.getExternalStorageDirectory() 
      + "/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi); 
    File[] files = dir.listFiles(); 
    numberOfImages=files.length; 


    for (int i=1;i<=numberOfImages;i++) 
    { 

     File img = new File("/sdcard/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi+"/pic"+i+".png"); 


     if(img.exists()) 
     { 
      Bitmap bit = BitmapFactory.decodeFile(img.getAbsolutePath()); 

     } 

    } 




    GridView gridView = (GridView) findViewById(R.id.gridview); 
    gridView.setAdapter(new ImageAdapter(this)); 

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, 
           View v, int position, long id) { 
      Toast.makeText(getBaseContext(), 
        "pic" + (position + 1) + " selected", 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 



} 



public class ImageAdapter extends BaseAdapter 
{ 
    private Context context; 

    public ImageAdapter(Context c) 
    { 
     context = c; 
    } 

    //---returns the number of images--- 
    public int getCount() { 
     return numberOfImages; 
    } 

    //---returns the ID of an item--- 
    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    //---returns an ImageView view--- 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     ImageView imageView; 
     if (convertView == null) { 
      imageView = new ImageView(context); 
      imageView.setLayoutParams(new GridView.LayoutParams(185, 185)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(7, 7, 7, 7); 
     } else { 
      imageView = (ImageView) convertView; 
     } 


     /**/ 
     imageView.setImageResource(imageIDs[position]); 
     /**/ 

     return imageView; 
    } 
} 

}

помогите пожалуйста, как я могу использовать изображение в этом классе (адаптер).

ответ

0

Если вы хотите показать изображения с SDK в вашем табличном использовать любую библиотеку imageloader

Универсальный погрузчик Изображение

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

, то вам нужно создать массив строк или класс модели вместо этого целочисленного массива. Пожалуйста, ознакомьтесь со следующими учебниками.

http://wptrafficanalyzer.in/blog/loading-thumbnail-images-in-a-gridview-and-opening-original-images-in-alertdialog-using-media-content-providers/

0

заменить

public int getCount() { 
     return numberOfImages; 
    } 

с

public int getCount() { 
     return imageIDs.length(); 
    } 
+0

no.i хотят изменить этот code.this не work.I хотите загрузить изображение из sdcard.but becaese я загрузить изображение с помощью файла IMG ... я не знаю, я replase imageview.setImageResource (imageID) с imageview.setImageBitmap() –

+0

@MahshidFallah переполнение стека поиска для кода для чтения изображений из хранилища, если есть какая-либо ошибка, отправьте его –

0

Сначала правильно объяснить, что хотите установить Drawable или Bitmap?

Если Bitmap то это, как вы должны установить битовую карту (составить список растровых изображений, а затем):

imageView.setImageBitmap(bitmaps[position]); 

если Drawable затем (сделать список рисуемых идентификаторами)

imageview.setImageResource(drawables[position]); 

Это как сделать растровый список:

ArrayList<Bitmap> bitmaps = new ArrayList<Bitmap>(); 


File dir = new File(Environment.getExternalStorageDirectory() 
      + "/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi); 
    File[] files = dir.listFiles(); 
    numberOfImages=files.length; 


    for (int i=1;i<=numberOfImages;i++) 
    { 

File f = new File("/sdcard/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi+"/pic"+i+".png"); 
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath()); 
if(bmp!=null){ 
bitmaps.add(bmp); 
} 
} 
+0

Приложение Bitmap.but имеет ошибку. И поскольку я запускаю его на физическом устройстве, когда он имеет ошибка, я не знаю, что такое ошибка –

+0

imageView.setImageResource (imageIDs [position]); это код с возможностью выгрузки. где ваш растровый список? – Spartan

+0

проверить мой обновленный ответ, вы получите некоторую идею. – Spartan

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

  • Нет связанных вопросов^_^