我有一个空白的线性列表,我有一个动态加载的图像列表(来自网址,工作)。
我需要在网格中显示图像(例如,当您访问Facebook照片库时)。
由于显而易见的原因,我无法使用XML,我的图像只显示在彼此之上并且非常小。
是否可以轻松将它们设置为屏幕尺寸的百分比? (因此列表在所有设备上看起来都一样)
到目前为止,这是代码:
private void Display()
{
Toast toast = Toast.makeText(getApplicationContext(), "Downloading Photos", Toast.LENGTH_SHORT);
toast.show();
//Get width of the image.
int imageWidth = (int)getWindowManager().getDefaultDisplay().getWidth() / 3;
LayoutParams gp = new GridView.LayoutParams(GridView.LayoutParams.FILL_PARENT, (int)imageWidth);
//Placeholders
for(int _i = 0; _i < _noOfPhotos; _i++)
{
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(R.drawable.no_image);
imageView.setLayoutParams(gp);
_imageViewArray.add(imageView);
this.addContentView(_imageViewArray.get(_i), gp);
}
//Set URL
//UrlImageViewHelper.setUrlDrawable(imageView, _userGallery.get(_i).getPicture());
}
答案 0 :(得分:1)
使用GridView,这正是这个用例。
<GridView
android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dip"
android:layout_marginBottom="20dip"
android:numColumns="3" />
您可以使用
获取每个ImageView的宽度float width = getWindowManager().getDefaultDisplay().getWidth() / 3;
mLayoutParams = new GridView.LayoutParams(
GridView.LayoutParams.FILL_PARENT,
(int)width); // set the width as height for quadratic images
然后,在GridView的ListAdapter中
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(context); // need to check convertView
imageView.setImageResource(mImages.get(position));
imageView.setLayoutParams(mLayoutParams);
return imageView;
}