以编程方式将图像添加到线性布局
Add images to linearlayout programmatically
我有一个 HorizontalScrollView
,里面有一个 LinearLayout
,我想以编程方式将多个图像添加到布局中,所有图像都具有相同的高度(大约 300dp)并包装内容。类似于它们按比例安装在滚动区域中的东西。
我的问题是当加载视图时,滚动区域中只有一个图像,其他图像通过滚动变得可见。
想想 4 张图像,只有一个可见,周围有空白区域(第一个),但其他 3 张正确地相继添加。
这是我的代码
<HorizontalScrollView
android:id="@+id/gallery_scroll"
android:layout_width="fill_parent"
android:layout_height="300dp" >
<LinearLayout
android:id="@+id/gallery_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
</HorizontalScrollView>
和加法函数:
for (final GalleryItem item : items) {
ImageView iv = new ImageView(context);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT
, LayoutParams.MATCH_PARENT);
param.setMargins(0, 0, 10, 0);
iv.setLayoutParams(param);
iv.setImageBitmap(item);
layout.add(iv);
}
结果:
使用这个:
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
并尝试设置:
iv.setAdjustViewBounds(true);
我有一个 HorizontalScrollView
,里面有一个 LinearLayout
,我想以编程方式将多个图像添加到布局中,所有图像都具有相同的高度(大约 300dp)并包装内容。类似于它们按比例安装在滚动区域中的东西。
我的问题是当加载视图时,滚动区域中只有一个图像,其他图像通过滚动变得可见。
想想 4 张图像,只有一个可见,周围有空白区域(第一个),但其他 3 张正确地相继添加。
这是我的代码
<HorizontalScrollView
android:id="@+id/gallery_scroll"
android:layout_width="fill_parent"
android:layout_height="300dp" >
<LinearLayout
android:id="@+id/gallery_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
</HorizontalScrollView>
和加法函数:
for (final GalleryItem item : items) {
ImageView iv = new ImageView(context);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT
, LayoutParams.MATCH_PARENT);
param.setMargins(0, 0, 10, 0);
iv.setLayoutParams(param);
iv.setImageBitmap(item);
layout.add(iv);
}
结果:
使用这个:
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
并尝试设置:
iv.setAdjustViewBounds(true);