J'ai un certain chemin d'image stocké dans la base de données et je dois montrer l'image dans la disposition de la grille. ici est mon codeAffichage d'images dans GridView
public class HeadshotAllPhoto extends Activity
{
GridView imagegrid;
String path,filemanagerstring;
String[] ImageNameArr;
String filePath = null;
String ImageName ;
Bitmap bitmap;
DataHelperHeadshot dbHeadshot;
String sub_list ;
String[] pathArr;
Bitmap[] bmp;
ArrayList<String> items = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.headshotallphoto);
dbHeadshot = new DataHelperHeadshot(this);
bg = (ImageView)findViewById(R.id.selectHeadshotView);
List<String> names = this.dbHeadshot.fetchAllHeadshot();
StringBuilder sb = new StringBuilder();
for (String name : names)
{
name.trim();
sb.append(",");
sb.append(name);
}
bmp = new Bitmap[icount+1];
sub_list = sb.toString();
Log.i("sub_list .. ",""+sub_list);
pathArr = sub_list.split(",");
for(int p=0;p<pathArr.length;p++)
{
if(pathArr[p]!=null)
{
bitmap = decodeFile(pathArr[p]);
if(bitmap!=null)
{
items.add(pathArr[p]);
bmp[p] = bitmap;
}
}
if(pathArr[p] == null)
break;
}
imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
imagegrid.setAdapter(new ImageAdapter(getApplicationContext(),bmp));
imagegrid.setOnItemClickListener(this);
}
}
public class ImageAdapter extends BaseAdapter
{
private Context mContext;
Bitmap[] mImageArray;
public ImageAdapter(Context c, Bitmap[] imgArray)
{
mContext = c;
mImageArray = imgArray;
}
public int getCount()
{
return mImageArray.length;
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position,View convertView,ViewGroup parent)
{
System.gc();
ImageView i = null ;
if (convertView == null)
{
i = new ImageView(mContext);
i.setLayoutParams(new GridView.LayoutParams(92,92));
i.setScaleType(ImageView.ScaleType.CENTER_CROP);
i.setImageBitmap(mImageArray[position]);
}
else
i = (ImageView) convertView;
return i;
}
}
public Bitmap decodeFile(String filePath)
{
System.out.println("filepath in decode file .. "+filePath);
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filePath, o);
// The new size we want to scale to
final int REQUIRED_SIZE = 100;
final int H = 50;
// Find the correct scale value. It should be the power of 2.
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp < REQUIRED_SIZE && height_tmp < H)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
System.out.println("decode file ........... "+filePath);
bitmap = BitmapFactory.decodeFile(filePath, o2);
return bitmap;
}
}
Pls me aider Merci
Voici un poste similaire, http://stackoverflow.com/questions/4712945/showing-data-in-gridview-from-database – Mudassir
i chercher le chemin de chaîne à partir de la base de données et mémorisées dans le tableau de bitmap mais j'ai chaque fois que je reçois 1 image supplémentaire nulle. – Monali
Peut me montrer le code? – Mudassir