【发布时间】:2020-07-27 16:53:58
【问题描述】:
我以编程方式将 ImageViews 添加到线性布局中,并希望它们在线性布局中居中,但布局本身与左侧对齐。
【问题讨论】:
标签: android scrollview android-linearlayout centering horizontalscrollview
我以编程方式将 ImageViews 添加到线性布局中,并希望它们在线性布局中居中,但布局本身与左侧对齐。
【问题讨论】:
标签: android scrollview android-linearlayout centering horizontalscrollview
在您的代码中,获取您的 LinearLayout:
LinearLayout yourLinearLayout = (LinearLayout) findViewById(R.id.yourLinearLayout);
定义一个通用的 LayoutParams 对象:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
然后使用 for 循环将您的 ImageViews 添加到您的 LinearLayout:
for (int i = 0; i < imagesToAdd.size(); i++) {
ImageView imgView = new ImageView(this);
imgView.setImageResource("yourResourceID" + i);
imgView.setLayoutParams(layoutParams);
yourLinearLayout.addView(imgView);
}
【讨论】:
创建一个以HorizontalScrollView 作为根视图并以LinearLayout 作为子视图的布局
要使图像居中,请确保在 LinearLayout 中使用 android:gravity="center"
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="horizontal">
<LinearLayout
android:id="@+id/linearlayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal">
</LinearLayout>
</HorizontalScrollView>
要以编程方式添加图像,请为 LinearLayout 充气并使用 addView() 方法
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout = findViewById(R.id.linearlayout);
linearLayout.addView(getImage(R.drawable.image1));
linearLayout.addView(getImage(R.drawable.image2));
linearLayout.addView(getImage(R.drawable.image3));
}
ImageView getImage(int drawable) {
ImageView image = new ImageView(this);
image.setLayoutParams(new
LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
image.setImageResource(drawable);
return image;
}
}
【讨论】: