社区
Android
帖子详情
关于左边留间隔的问题marginLeft
vnking
2014-10-24 04:56:11
用marginLeft="10dp"来设置距离左边的间隔,但我的要求有点不同。
对于不同的屏幕分辩率,不想采用具体的间隔像素,而是要求一个百分比。
比如:我想让一个控件居中,左右离边缘各有10%的间隔,这应该如何实现呢?
即对于480x???的屏幕,左右各留48个像素
对于1200x????的屏幕,左右各留120个像素。
...全文
458
8
打赏
收藏
关于左边留间隔的问题marginLeft
用marginLeft="10dp"来设置距离左边的间隔,但我的要求有点不同。 对于不同的屏幕分辩率,不想采用具体的间隔像素,而是要求一个百分比。 比如:我想让一个控件居中,左右离边缘各有10%的间隔,这应该如何实现呢? 即对于480x???的屏幕,左右各留48个像素 对于1200x????的屏幕,左右各留120个像素。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Sad4This
2014-10-27
打赏
举报
回复
用LinearLayout的weight属性
MR__P
2014-10-27
打赏
举报
回复
如果你能明确比例的话可以用weight属性
骑着蜗牛去爬山
2014-10-27
打赏
举报
回复
左右各加个View占位,然后用weight和gravity。
vnking
2014-10-27
打赏
举报
回复
感觉都有些复杂
yubingqiang123
2014-10-27
打赏
举报
回复
这个是我做的一个不同手机屏幕的适配,看一下对你有帮助有 DisplayMetrics displayMetrics = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int screenWidth = displayMetrics.widthPixels; int screenHeight = displayMetrics.heightPixels; System.err.println("打印高:" + screenWidth); System.err.println("打印宽:" + screenHeight); if (screenWidth == 480) { rate = (int) (textsize * (float) screenWidth / 480); rate = (int) (textsize * (float) screenHeight / 800); int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); game_img.measure(w, h); int height = game_img.getMeasuredHeight(); System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams( 150, 35); layoutParam.setMargins(70, 0, 0, 0); layoutParams.topMargin = height / 2 + 9; layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER); game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER); rubberView.setLayoutParams(layoutParam); } else if (screenWidth == 1080) { rate = (int) (textsize * (float) screenWidth / 1080 * 1.2); rate = (int) (textsize * (float) screenHeight / 1920 * 1.2); int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); game_img.measure(w, h); int height = game_img.getMeasuredHeight(); System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams( 300, 80); layoutParam.setMargins(130, 0, 0, 0); layoutParams.topMargin = height / 2 + 9; layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER); game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER); rubberView.setLayoutParams(layoutParam); } else if (screenWidth == 540) { rate = (int) (textsize * (float) screenWidth / 540 * 1.2); rate = (int) (textsize * (float) screenHeight / 960 * 1.2); int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); game_img.measure(w, h); int height = game_img.getMeasuredHeight(); System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams( 150, 40); layoutParam.setMargins(70, 0, 0, 0); layoutParams.topMargin = height / 2 + 9; layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER); game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER); rubberView.setLayoutParams(layoutParam); } else if (screenWidth == 720) { rate = (int) (textsize * (float) screenWidth / 720 * 1.2); rate = (int) (textsize * (float) screenHeight / 1280 * 1.2); int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); game_img.measure(w, h); int height = game_img.getMeasuredHeight(); System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams( 200, 60); layoutParam.setMargins(90, 0, 0, 0); layoutParams.topMargin = height / 2 + 9; layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER); game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER); rubberView.setLayoutParams(layoutParam); } else { } game_jinbi.setTextSize(rate); game_shuoming2.setTextSize(rate); game_shuoming.setTextSize(rate); game_gjcishu.setTextSize(rate); game_gjcishu2.setTextSize(rate); }
网络咖啡
2014-10-24
打赏
举报
回复
把margin值写道dimens.xml文件中,使用value-XXX这样的文件来适配不同屏幕尺寸,每个这样的文件夹下面一个dimens.xml文件
小双
2014-10-24
打赏
举报
回复
代码添加也可以,获取屏幕尺寸,然后代码添加控件设置计算出来的长度宽度,还有margin
荔枝别闹了
2014-10-24
打赏
举报
回复
写一个适配文件
TextView常用属性设置
本文详细介绍了Android中TextView的基本属性,如width、height、
margin
、padding等,并探讨了
margin
Start与
margin
Left
的区别。此外,还讲解了如何实现3D效果和跑马灯效果,以及获取焦点的方法。最后,建议开发者查阅官方文档以了解更多属性。
ext 按钮之间的间距
本文展示了一个使用ExtJS库创建按钮的基本配置示例。该示例定义了一个按钮,设置了其最小宽度为70像素,并定义了底部、
左边
及右边的外边距。此外,还指定了按钮的ID为'test',并设置了按钮的文字显示为'button'。
Android 布局 线性布局 相对布局父类的位置 布局相关属性
本文详细介绍了Android中线性布局和相对布局的使用方法,包括Gravity属性、layout_weight、layout_below等属性的详细解释,以及如何实现居中、对齐和
间隔
设置。
Android的布局方法
本文深入探讨了Android中控件的基本属性配置方法,包括id、text、gravity、textSize、background、width、height、padding等,并详细介绍了RelativeLayout布局方法中的关键属性,如layout_
margin
Left
、layout_above、layout_below等,提供了丰富的实例演示。
Android
80,490
社区成员
91,374
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章