我正在动态生成图像视图。那是在Asysntask。
在PostExecute方法中,我正在膨胀这个布局:
<TextView android:id="@+id/imageLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="abcd"
android:layout_marginLeft="20dp"
android:textSize="20sp"/>
<ImageView
android:id="@+id/btnCapturePicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:src="@drawable/imageview"
android:layout_marginBottom="15dp"
android:layout_below="@+id/imageLabel"
/>
在代码中:
(build_types.getJSONObject(i).getString("name").equals("Image")) {
final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View imageview = inflater.inflate(
R.layout.imagecapture, null);
final ImageView imgPreview = (ImageView) imageview
.findViewById(R.id.btnCapturePicture);
final TextView imageText = (TextView) imageview.findViewById(R.id.imageLabel);
imageText.setText(build_types.getJSONObject(i).getString("label"));
imgPreview.setId(Integer.parseInt(build_types
.getJSONObject(i).getString("id")));
if (type == 6) {
if(image==1){
image=0;
}
else{
image++;
System.out.println("Inside 2 consequetive images::");
RelativeLayout.LayoutParams imageParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
//imageParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
System.out.println("Image Count Id::"+imgPreview.getId());
System.out.println("ImageID Flag::"+imagIdFlag);
// imageParams.setLayoutDirection(Layout.DIR_LEFT_TO_RIGHT);
imageParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
imageParams.addRule(RelativeLayout.RIGHT_OF,imgPreview.getId());
imgPreview.setLayoutParams(imageParams);
}
}
rv.addView(imageview);
type = 6;
当我必须通过设置图像标记并排保持图像时,我得到了准确的计数。然而,图像出现在另一个之下。
答案 0 :(得分:1)
确保“rv”是一个LinearLayout,其方向设置为水平,只需夸大您的视图并添加到其中。
答案 1 :(得分:0)
我不知道"rv"
中哪种类型的布局rv.addView(imageview);
,但它可能是vertical
导向的LinearLayout
。只需将此Layout
的方向设置为horizontal
。