首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

布局重力在自定义FrameLayout视图中不居中

是因为FrameLayout的默认行为是将子视图放置在左上角,而不是居中。要使布局重力生效并使子视图居中,可以使用以下方法:

  1. 使用android:layout_gravity属性:在自定义FrameLayout的XML布局文件中,为子视图添加android:layout_gravity属性,并将其值设置为"center"。这将使子视图在FrameLayout中居中对齐。

示例代码:

代码语言:txt
复制
<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>
  1. 使用代码设置布局重力:在自定义FrameLayout的Java代码中,可以使用LayoutParams来设置子视图的布局参数,并将重力设置为居中。

示例代码:

代码语言:txt
复制
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);

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 人工智能机器学习平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云游戏引擎(GSE):https://cloud.tencent.com/product/gse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android六大布局

Android六大布局 LinearLayout(线性布局) 常用属性 FrameLayout(帧布局) 常用属性 RelativeLayout(相对布局) 常用属性 AbsoluteLayout(绝对布局...FrameLayout(帧布局) FrameLayout(帧布局)可以说是五大布局中最为简单的一个布局,这个布局会默认把控件放在屏幕上的左上角的区域,后续添加的控件会覆盖前一个,如果控件的大小一样大的话...--控件重力--> android:foreground android:foregroundGravity RelativeLayout(相对布局) 相对布局(RelativeLayout)是一种根据父容器或者兄弟控件作为参照来确定控件位置的布局方式 常用属性 相对布局原文链接:https...android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom

2.6K20
  • 六大布局FrameLayout

    前言 上一期我们给大家讲解了LiearLayout,这一期我们为大家讲解一下FrameLayout(帧布局)的使用,相较于其他布局FrameLayout可以说的上是最简单的一个,并且其使用范围相对来说也相对较小...,但是也是Android中的六大布局之一,面试的时候还是会碰到的,所以让我们赶紧开始学习吧~ 简介 FrameLayout中,这个布局直接在屏幕上开辟出一块空白的区域,所有添加到这个布局中的视图都是以层叠的方式显示...,而它会把这些试图默认放到这块区域的左上角,第一个添加到布局中视图显示最底层,最后一个被放在最顶层。...上一层的视图会覆盖下一层的视图,因此该布局类似于堆栈布局,这就是FrameLayout为什么被使用较少的原因。...结语 关于FrameLayout的介绍就到这里啦,阔能部分小伙伴觉得今天的文章内容不是太多,主要是因为FrameLayout实际项目中应用到的场景非常之少,所以大家简单了解一哈就好了。但是!!!

    1.4K10

    安卓 View 和常见控件

    布局管理器 ViewGroup 常用三大布局布局 FrameLayout - 用于单个子视图。 线性布局 LinearLayout - 用于横向或竖向依次摆放视图的布局。...android.widget.FrameLayout android.widget.ScrollView 它是 FrameLayout 类的子类(这意味着您应该只放入一个子视图,该子项包含要滚动的完整内容...自定义 listview 的 item 的布局的时候, 通常加上最小高度的属性, 防止高度过小导致用户点击不到。 android:minHeight="?...android:attr/listPreferredItemHeight" 而且还常常加上垂直居中 android:gravity="center_vertical" 常用控件 edittext 写的话...getDimensionPixelSize()就是45. android中getWidth()和getMeasuredWidth()之间的区别 getMeasuredWidth()获取的是 view 原始的大小,也就是这个 view XML

    97210

    SwiftUI 中实现视图居中的若干种方法

    欢迎大家 Discord 频道[2] 中进行更多地交流将某个视图父视图中居中显示是一个常见的需求,即使对于 SwiftUI 的初学者来说这也并非难事。...需求实现下图中展示的样式:彩色矩形视图中居中显示单行 Textimage-20220829142518962填充物Spacer最常见也是最容易想到的解决方案。...解决的方法是:.background(.blue, ignoresSafeAreaEdges: []) ,排除掉希望忽略的安全区域。...为布局容器设置明确的 spacing 是一个好习惯,未明确指定时,HStack、VStack 进行布局时可能会出现某些异常。下文中也会碰到此种情况。...:使用 FrameLayout 布局容器对 Text 进行布局FrameLayout 给 Text 的建议尺寸为 300 x 60Text 与占位视图( 空白视图的尺寸为 300 x 600 )按对齐指南

    6.7K40

    layoutparams方法_LAYOUT

    可以这样去形容LayoutParams,象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子4行4列,这里的“4行4列”就是棋子的LayoutParams。...JAVA中动态构建的布局,常常这样写: setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT...因为布局很多,虽然都继承至ViewGroup但是各个布局还是有很大的不同。...FrameLayout下动态设置子控件居中,动态用JAVA代码要这样实现: FrameLayout.LayoutParams lytp = new FrameLayout.LayoutParams(80...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    51520

    Android 列表视频的全屏、自动小窗口优化实践

    保存当前的状态栏、标题栏信息和列表中屏幕位置的信息,用于恢复到原本的状态。 创建一个黑色背景的FrameLayout,充满屏幕用来承载全屏播放器F,这样全屏播放器F可以在其中执行动画效果。...frameLayout.addView(gsyVideoPlayer, lp); vp.addView(frameLayout, lpParent); //将播放器跳转为充满居中...,逻辑播放器和全屏逻辑播放器都是一个单例,需要你手动list列表的最外层加多一个布局做全屏播放,每个item那里预留一个位置用于包容列表的播放器,还有一个播放按钮用于播放。...感觉很麻烦是吧,耦合度又高,但是它可以视频滑出界面的时候不被释放,一直保持原来的位置。...逻辑和实现全屏一样,用系统的content层来承载,不同的是利用margin让视频出现在右下角,这样我们拖动的时候只要改变视频的margin,就可以让视频小窗体它的父布局内移动啦。 ?

    4.6K50

    Anroid Wear OS 手表应用开发 - UI

    相对来说,布局会更简洁,更多地使用滑动手势进行操作。 为此, Wear OS 上,官方提供了一系列新的控件和交互,通过它们,我们可以很方便地打造出一个适合手表交互的应用。...常见的表盘有方形和圆形两种,使用普通布局的情况下,可能会出现这种情况: 为了使圆形表盘上的内容超出边界,同时兼容方形表盘,我们可以使用 BoxInsetLayout 这个布局: <android.support.wear.widget.BoxInsetLayout...下面是一个简单的自定义底部抽屉栏布局: <android.support.wear.widget.drawer.WearableDrawerView android:id="@+id/action_drawer...这样我们就可以<em>在</em> layout_bottom_drawer 中设置自己想要的<em>布局</em>了,其他用法都和上面是一样的。...android:layout_height="match_parent" android:scrollbars="vertical" /> 复制代码 代码中设置: // 使列表上的第一项和最后一个项屏幕上垂直居中对齐

    2.5K30

    【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现

    布局管理器都是以ViewGroup为基类派生出来的; 使用布局管理器可以适配不同手机屏幕的分辨率,尺寸大小; 布局管理器之间的继承关系 :  在上面的UML图中可以看出, 绝对布局布局 网格布局...getHeight()和getWidth()方法获取宽度和高度; 组件内可以获取 : 自定义的类中可以View的类中通过调用这两个方法获取该View子类组件的宽和高; b....LayoutParams属性 (1) 只能设置boolean值的属性 这些属性都是相对父容器的, 确定是否父容器中居中(水平, 垂直), 是否位于父容器的 上下左右 端; 是否水平居中 : android...帧布局FrameLayout布局容器为每个组件创建一个空白区域, 一个区域成为一帧, 这些帧会根据FrameLayout中定义的gravity属性自动对齐; 1....绝对布局介绍  绝对布局特点 : 绝对布局中,组件位置通过x, y坐标来控制, 布局容器不再管理组件位置, 大小, 这些都可以自定义;  绝对布局使用情况 : 绝对布局不能适配不同的分辨率, 屏幕大小

    2.4K40

    安卓开发微信页面设计

    功能要求 1.页面具有标题 2.具有四个页面,页面具有底部选择框,同时具有选择事件,当点击选择事件的时候进行页面切换 3.页面内容超出边界且清晰 思路分析 该微信界面由三部分组成 页面顶部标题栏(top.xml...) 中间内容页面 底部导航栏(bottom.xml) 所以我们需要编写上述几个xml布局页面,分别分析每部分的布局内容及要求:  顶部标题栏:此栏需有app的标题,标题大小颜色自定义居中显示,背景色自选...标题栏  添加一个TextView,填入文字,定义大小和颜色,设置背景颜色,有关于文字居中,我们要修改和添加一些配置信息。  ...后,再放一个TextView,慢慢拖动设置到满意的程度  修改layout_width,layout_weight,orientation直到达到预期效果 activity_main主布局文件  activity_main...然后是将标题栏和底部栏放入,用include导入top和bottom,然后中间放入一个FrameLayout就可以了。

    96340

    Android入门教程(三)-安卓UI文档教程

    对Android五大布局的描述,分别是 FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局...FrameLayout 框架布局 FrameLayout 布局的使用效果,就是所有布局里的控件都会自动往左上角放置。所有的元素都会依次覆盖上一次的元素。...布局文件中,我们可以看到android:gravity=”###”的描述情况,该控件是描述控件内部的文本格式。...布局中的 android:orientation=”vertical” //属于垂直排列 和  android:orientation=”horizontal” //水平排列 center:居中 center_horizontal...// 水平居中 center_vertical //垂直居中 fill:充满容器 |fill_horizontal//水平方向充满容器 |fill_vertical //垂直方向充满容器 代码例子可以参考

    61320

    Android 实现圆角布局

    因为自己太菜只能寻求网上的大神,发现一个自定义圆角布局,这样可以变相的解决我的需求,还可以实现更多的圆角效果,不仅是图片,还包括其他布局。...和尚我根据大神的总结自定义了一个 MyRoundLayout GitHub 布局样式。...---- Tips: 设置完角度之后,要添加 invalidate() 刷新 UI,才可以进行动态设置; 自定义布局样式继承的 FrameLayout,所以设置需要进行圆角的控件外即可,并不影响其内部控件的样式...; 既然 MyRoundLayout 继承的是 FrameLayout,则应遵循 FrameLayout 的特点,内部不能直接设置控件的权重,可在内部添加一层 Layout 布局进行权重 weight...的处理; 使用 MyRoundLayout 时,因为设置的是外层的圆角,所以建议使用 padding 的属性,若要设置边距,建议使用外边距 margin,若使用 padding 不当,会发生效果图中第一行第二个的样式

    2.2K21

    Android精通:TableLayout布局,GridLayout网格布局FrameLayout布局,AbsoluteLayout绝对布局,RelativeLayout相对布局

    标题图 Android中提供了几个常用布局: LinearLayout线性布局 RelativeLayout相对布局 FrameLayout布局 AbsoluteLayout绝对布局 TableLayout... FrameLayout布局 FrameLayout布局是什么样的呢?...四大控制属性.png 由于绝对布局不常见,不常用,因为不同大小的适配屏幕上的位置直观上会变化,适应能力差,所以建议使用。...layout_marginRight 为和父容器右端的距离,单位为dp android:layout_margin为和父容器四周的距离,单位为dp android:layout_centerVertical 为父类的垂直居中...,为true或false android:layout_centerHorizontal为父类的水平居中,为true或false android:layout_centerInParent 为父类的水平垂直居中

    4K20

    1.之Andriod布局 VS WinPhone布局

    开发,第一件事就是翻翻看安卓提供的布局方式方便,因为笔者现在是做WP的,于是乎有了这篇比较两个平台提供的一些基础的布局方式的博文。...3.FrameLayout&AbsoluteLayout VS Canvas 官方文档布局介绍文档中已经不见FrameLayout和AbsoluteLayout这两位了,估计是安卓如此丰富的设备分辨率下以及很少有场景能用到这两种布局方式了...Android-FrameLayout:以FrameLayout的左上角为基准起始位置,第一个子元素第一层,第二个子元素第二层,,,依次类推,就像千层饼一样。...ture|false:父容器中垂直居中 android:layout_centerInparent ture|false:父容器中水平且垂直完全居中 上述3个属性控制子元素的居中问题。...由于TableLayout不能跨行,则布局上述的界面就要结合其他的布局容器才能完成了(而且用上了一些固定的宽高值,推荐这样做): 1 <TableLayout 2 android:layout_width

    1.2K80

    Android入门教程(三)

    对Android五大布局的描述,分别是 FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局...FrameLayout 框架布局 FrameLayout 布局的使用效果,就是所有布局里的控件都会自动往左上角放置。所有的元素都会依次覆盖上一次的元素。...布局文件中,我们可以看到android:gravity=”###”的描述情况,该控件是描述控件内部的文本格式。...布局中的 android:orientation=”vertical” //属于垂直排列 和 android:orientation=”horizontal” //水平排列 center:居中 center_horizontal...// 水平居中 center_vertical //垂直居中 fill:充满容器 |fill_horizontal // 水平方向充满容器 |fill_vertical //垂直方向充满容器 代码例子可以参考

    65920

    项目需求讨论-标题栏上的搜索功能

    我们的布局代码就变成了:(ps:因为我用的是百分比布局,所以Framelayout变为了PercentFrameLayout,LinearLayout变为了PercentLinearLayout) <android.support.v7...,就知道第一步中的标题栏的布局的上面,覆盖了一层横向布局,用来显示SearchView和取消按钮,该界面默认是隐藏的,只有当按了搜索图标按钮,再让这个横向布局显示,盖在上面,(当然同时也可以让原来的标题和搜索图标按钮隐藏...原来,Toolbar自带的左边的按钮,是默认先占了它的位置,然后剩下的面积再是放我们自己定义的FrameLayout,所以我们的FrameLayout总体就先往右边偏移了。...因为设置他们的展开与展开,正好会自动调用键盘的显示和隐藏。...O(∩_∩)O ---- 补充1: 感谢大家下面留言指出错误,说是标题并没有居中,我用AS的布局工具看了,没有居中的原因如下图所示: ?

    1.3K10
    领券