我有一个垂直的线性布局,里面有一个滚动视图。
以编程方式我在其中添加了一些东西
一个TextView,没关系:我可以使用
来集中它LayoutParams params = new LinearLayout.LayoutParams (
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT
);
...
monthNameTextView.setLayoutParams(params);
monthNameTextView.setGravity(Gravity.CENTER_HORIZONTAL);
然后我添加一个水平的LinearLayout。没关系
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);
图像已加载,为3,并且以线性布局为中心。
问题是指一个图像与下一个图像之间没有间距。
我是新手,我正在尝试理解layout_weight和weight之间的差异,我在这里问你如何以编程方式设置这些参数,以便有一个简单的居中的三个图像集,每个图像之间有一些'间距'他们。
答案 0 :(得分: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);
答案 1 :(得分: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);
// ...