How To Create Gridview Image Gallery Programmatically In Android?
I want to create 3x3 gridview programmatically for displaying images. And I want to set each item height and width by getting screen dimensions. Like: DisplayMetrics metrics = cont
Solution 1:
This is how you can create gridview programmatically,
GridViewgrid=newGridView(this);
grid.setId(ViewIdentification.getId());
grid.setLayoutParams(newGridView.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
grid.setBackgroundColor(Color.WHITE);
grid.setNumColumns(3);
grid.setColumnWidth(GridView.AUTO_FIT);
grid.setVerticalSpacing(5);
grid.setHorizontalSpacing(5);
grid.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
Add the above view to your layout. And here you can get the height and width of the display.
DisplayMetricsdisplaymetrics=newDisplayMetrics();
getWindowManager().getDefaultDisplay()
.getMetrics(displaymetrics);
intwidth= displaymetrics.widthPixels;
intheight= displaymetrics.heightPixels;
And here is the adapter class :
publicclassImageAdapterextendsBaseAdapter {
private Context mContext;
private Bitmap[]mis_fotos;
publicImageAdapter(Context c) {
mContext = c; }
publicintgetCount() {
return mis_fotos.length;
}
public Object getItem(int position) {
return position; }
publiclonggetItemId(int position) {
return0; }
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(width/3, height/3));
imageView.setScaleType(ImageView.setScaleType(ScaleType.FIT_XY));
imageView.setPadding(0, 0, 0, 0);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageBitmap(mis_fotos[position]);
return imageView;
}
}
Then, It's upto you, If you are passing dynamic URL, change your adapter accordingly. set your adapter to your gridview. Let me know if you have any issues.
Solution 2:
In your Activity:
@OverridepublicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GridViewgridView=newGridView(this);
gridView.setNumColumns(3);
setContentView(gridView);
gridView.setAdapter(newGridViewAdapter(this));
}
And Adapter:
privateclassGridViewAdapterextendsBaseAdapter {
private Context context;
privatefinalintlength=9;
publicGridViewAdapter(Context context) {
this.context = context;
}
@OverridepublicintgetCount() {
return length;
}
@Overridepublic Object getItem(int position) {
returnnull;
}
@OverridepubliclonggetItemId(int position) {
return0;
}
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = newImageView(context);
DisplayMetricsmetrics= context.getResources().getDisplayMetrics();
intwidth= metrics.widthPixels / 3;
intheight= metrics.heightPixels / 3;
imageView.setLayoutParams(newGridView.LayoutParams(width, height));
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(R.drawable.ic_launcher);
return imageView;
}
}
Post a Comment for "How To Create Gridview Image Gallery Programmatically In Android?"