0

我有一个单一的垂直线性布局,里面有一个滚动视图。

以编程方式,我在里面添加了一些东西

  • 一个TextView,没关系:我可以使用它来居中

    LayoutParams params = new LinearLayout.LayoutParams (
    LayoutParams.FILL_PARENT,
    LayoutParams.WRAP_CONTENT
    );
    
    ...
    
    monthNameTextView.setLayoutParams(params);
    monthNameTextView.setGravity(Gravity.CENTER_HORIZONTAL);
    
  • 然后我添加一个水平线性布局。没关系

    gallery = new LinearLayout(this);
    
    gallery.setOrientation(LinearLayout.HORIZONTAL);
    gallery.setGravity(Gravity.CENTER_HORIZONTAL);
    gallery.setLayoutParams(params);
    
  • 然后我添加 3 ImageView 从磁盘加载图像

    Bitmap myJpg = BitmapFactory.decodeFile(imgFile.getAbsolutePath());  
    ImageView cover = new ImageView(this);
    cover.setImageBitmap(myJpg);
    gallery.addView(cover);
    

图像被加载,是三个,并以线性布局为中心。

问题是下一张图像与下一张图像之间没有间距。

我是新手,我正在尝试了解 layout_weight 和 weight 的区别,我在这里问你如何以编程方式设置这些参数,以得到一组简单居中的三个图像,每个图像之间都有“一些”间距。

4

2 回答 2

2

更改用于将 ImageViews 添加到此的代码:

Bitmap myJpg = BitmapFactory.decodeFile(imgFile.getAbsolutePath());  
ImageView cover = new ImageView(this);
cover.setImageBitmap(myJpg);
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llp.setMargins(YOUR_DESIRED_SPACE_VALUE, 0, 0, 0); // 4 margin values for Top/Left/Right/Bottom
gallery.addView(cover, llp);
于 2012-09-08T08:38:54.070 回答
1

是否需要在您的代码中进行布局?如果要显示的图像数量始终为三个,只需创建一个 XML 布局文件,然后为它们动态设置图像。

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" 
        android:layout_margin="5dp"/>

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" 
        android:layout_margin="5dp"/>

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" 
        android:layout_margin="5dp"/>

</LinearLayout>

然后在您的代码中:

ImageView iv1 = (ImageView) findViewById(R.id.imageView1);
iv1.setImageBitmap(YOUR_BITMAP);
// ...
于 2012-09-08T09:01:23.143 回答