Android 两个view并列显示
两个view并列显示,第二个view跟在第一个view的后面,如果长度过长,则第一个view宽度缩小。
直接上代码 用就完了!
public class TextWithImageLayout extends LinearLayout {private final int MARGIN = 40;private int mMargin;private int[] mChildWidthList;public TextWithImageLayout(Context context, AttributeSet attrs) {super(context, attrs);mMargin = MARGIN;}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);int widthSize = MeasureSpec.getSize(widthMeasureSpec);int heightSize = MeasureSpec.getSize(heightMeasureSpec);int count = getChildCount();View firstChild = getChildAt(0);if (count > 1) {int firstChildWidth = firstChild.getMeasuredWidth();int firstChildHeight = firstChild.getMeasuredHeight();int otherChildrenWidth = 0;int otherChildrenHeight = 0;for (int i = 1; i < count; i++) {View child = getChildAt(i);int width;if (mChildWidthList == null) {width = child.getMeasuredWidth();} else {width = mChildWidthList[i - 1];}otherChildrenWidth += width;child.measure(width | MeasureSpec.EXACTLY, child.getMeasuredHeight() | MeasureSpec.EXACTLY);otherChildrenHeight = child.getMeasuredHeight();}int margin = mMargin * (count - 1);if (firstChildWidth + otherChildrenWidth + margin > widthSize) {firstChildWidth = widthSize - otherChildrenWidth - margin;}heightSize = firstChildHeight > otherChildrenHeight ? firstChildHeight : otherChildrenHeight;firstChild.measure(firstChildWidth | MeasureSpec.EXACTLY,firstChildHeight | MeasureSpec.EXACTLY);} else {firstChild.measure(firstChild.getMeasuredWidth(), firstChild.getMeasuredHeight());heightSize = firstChild.getMeasuredHeight();}setMeasuredDimension(widthSize, heightSize);}@Overrideprotected void onLayout(boolean changed, int l, int t, int r, int b) {super.onLayout(changed, l, t, r, b);int count = getChildCount();int left = 0;for (int i = 0; i < count; i++) {final View child = this.getChildAt(i);int width = child.getMeasuredWidth();int height = child.getMeasuredHeight();int top = (b - t) / 2 - height / 2;child.layout(left, top, left + width, top + height);left = left + width + mMargin;}}public int[] getChildWidthList() {return mChildWidthList;}public void setChildWidthList(int[] childWidthList) {this.mChildWidthList = childWidthList;}
}
Android 两个view并列显示相关推荐
- android 两个view切换动画,两个surfaceView实现切换效果
需求:视频通话界面,两个surfaceView一个显示本端的视图,另一个显示对端的视图,由于显示比例的问题总会存在一个覆盖另一个的问题,为保证用户体验,规定小的覆盖大的视图上面,且点击小的视图可切花为 ...
- html中如何让两个按钮并列显示(中间紧密连接在一起,不会出现空格)
这个实现很简单,使用ul-li或者table-tr把按钮包含进去就行了
- android 在指定位置添加布局,Android 如何动态添加 View 并显示在指定位置。
引子 最近,在做产品的需求的时候,遇到 PM 要求在某个按钮上添加一个新手引导动画,引导用户去点击.作为 RD,我哗啦啦的就写好相关逻辑了.自测完成后,提测,PM Review 效果. 看完后,PM ...
- android动态添加控件在指定位置,Android 如何动态添加 View 并显示在指定位置。
引子 最近,在做产品的需求的时候,遇到 PM 要求在某个按钮上添加一个新手引导动画,引导用户去点击.作为 RD,我哗啦啦的就写好相关逻辑了.自测完成后,提测,PM Review 效果. 看完后,PM ...
- android中实现view的更新有两组方法
android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了 ...
- android view.isshown,源码解析view的显示判断用isShown()还是View.VISIBLE
前言 平时我们对View的显示判断都是用简要的方式去判断,那么,究竟是用view.isShown()去判断还是用view. getVisibility() == View.VISIBLE 判断好呢?其 ...
- 【速记】Android让View的显示超出父容器
场景,View在嵌套布局的时候,正常View都是显示在父容器内部的,超出部分将被裁剪,如果我们希望某个View不被父容器限制,可以超出父容器范围显示,可以使用Google 提供的android:cli ...
- android imageview.setVisibility(View.VISIBLE)设置无效,代码已执行但是图片不显示
android imageview.setVisibility(View.VISIBLE)设置无效,代码已执行但是图片不显示 在网上找了很多文章,基本上都是说在设置setVisibility()之前, ...
- android如何给整个视图view圆角显示
关于如何给一个view设置圆角,有哪些方法呢? 1.给该view设置一个圆角的背景,这是最常见的用法.如以下代码: round_bg.xml <?xml version="1.0&qu ...
最新文章
- kset_create_and_add
- gitlab mysql devel_服务器搭建gitlab+mysql+nginx+redis+Jekins
- 我总有办法让你今晚回不了家...
- WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)
- python selenium unittest_python+selenium+unittest单元测试框架
- 定义一个结构体指针需要分配存储空间?
- ACE editor 在线代码编辑极其高亮
- 【软件测试】α测试和β测试的区别
- ThinkPHP5 助手函数
- 146.PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别
- 自动驾驶车辆控制 最终项目作业 实现分析
- 《Windows黑客编程技术》—— 学习历程
- PHP集成环境:这些年我用过的那些PHP环境
- DDR4、LPDDR4、LPDDR4x区别及DDR拓展
- Liang-Barsky裁剪算法
- ASP多媒体视频教程
- php fpm 关闭,php-fpm的启动、关闭、重启
- QQ游戏自动登录器V4.0
- nginx网关与gateway网关的区别
- ios12卡贴机(有锁)/无锁机 改电信VOLTE //高通基带//教程