Reputation: 725
I follow this tutorial to create a GridView:
This line:
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
Size 85x85 is great for my Wildfire, but on HTC Desire it looks very small. How can I change the image size according to the screen?
I have 2 different layouts, but Gridview
hasn't any attribute in the XML files to change the image size.
Upvotes: 5
Views: 9173
Reputation: 30168
Similar to willytate's answer, but you're better off creating a dimension value in an xml (for 85dp) and retrieving it like so:
int size = resources.getDimensionPixelSize(R.dimen.your_dimension);
That way, the width/height will be sized consistently, without you having to worry about much.
Upvotes: 6
Reputation: 33509
You could try to make an adjustment based off the pixel density of the current device you are on.
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi){
case DisplayMetrics.DENSITY_LOW:
imageView.setLayoutParams(new GridView.LayoutParams(lowVal, lowVal));
break;
case DisplayMetrics.DENSITY_MEDIUM:
imageView.setLayoutParams(new GridView.LayoutParams(medVal, medVal));
break;
case DisplayMetrics.DENSITY_HIGH:
imageView.setLayoutParams(new GridView.LayoutParams(highVal, highVal));
break;
}
Upvotes: 8