在Android项目开发中,为了更加好的去进行适配,某些时候就需要用到动态获取A控件的宽高,将A控件宽高的值动态设置给B控件,例如我在xml文件中将TextView和ImageView的宽高都设置为wrap_content,接下来将动态获取TextView的宽高,然后将宽高值设置给IaageView

        

在java代码中

  //声明一个boolean,因为addOnGlobalLayoutListener会重复执行,控制它启动后只执行一次  private boolean isCompletedDraw = false;         //获取TextVie控件的高度,然后设置给ImageView        tvRead.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {            @Override            public void onGlobalLayout() {                if (!isCompletedDraw){                    isCompletedDraw = true;                    // h就是TextView的高度,h就是TextView的宽度                    int h = tvRead.getMeasuredHeight();                    int w = tvRead.getMeasureWidth();                    //为ImageView设置宽高                    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ivIsRead.getLayoutParams();                    params.width = w;                    params.height = h;                    ivIsRead.setLayoutParams(params);                    ivIsRead.setImageResource(R.drawable.shape_is_read);                }            }        });

每日记录代码,生活会因此而美好!

更多相关文章

  1. Android的SurfaceView使用
  2. Android万能下拉刷新,上拉加载。支持自定义样式!!!
  3. Android(安卓)TextView实现逐字动画
  4. Android最火的框架系列(三)JiaoZiVideoPlayer
  5. 关于Android(安卓)NDK中调用第三方的动态库
  6. Android中的布局 Layout
  7. Android自定义控件系列九:从源码看Android触摸事件分发机制
  8. Android(安卓)AccessibilityService机制源码解析
  9. Android中Layout转成Java代码

随机推荐

  1. android发网络请求工具类
  2. ActionBar的使用——低版本兼容
  3. Android Service startForeground不显示N
  4. android中dp和px的转换
  5. Android 应用软件开发(八)窗口布局
  6. Does Android Support Dual-Cores or Mul
  7. 通过ijetty获取android设备的截图
  8. Android 增量更新实例(Smart App Updates)
  9. Android 数据存储之SQLite数据库
  10. Android -- ContentProvider