是因为FrameLayout的默认行为是将子视图放置在左上角,而不是居中。要使布局重力生效并使子视图居中,可以使用以下方法:
示例代码:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image"
android:layout_gravity="center" />
</FrameLayout>
示例代码:
FrameLayout frameLayout = findViewById(R.id.frameLayout);
ImageView imageView = findViewById(R.id.imageView);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT
);
layoutParams.gravity = Gravity.CENTER;
imageView.setLayoutParams(layoutParams);
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云