android 动态设置控件宽度,比例等

简介: android 动态设置控件宽度,比例等

image.png

左边是手机上面的效果,右边是华为pad上面的效果。


中间 合同价 竣工结算价 这个分类要求显示4个,所以 这个里面item的宽度是动态计算的。


不然无法满足要求。


计算的思路


是用 (屏幕宽度-2*中间linearlayout的 margin-2*中间linearlayout的padding)/4


就是每个item的宽度。


这里面还需要注意一点就是动态设置宽度 不要给item xml里面的 最外面的Linearlayout或者RelativeLayout设置width


这样可能会出错,直接给 布局里面的 textView 或者imageView设置就可以了

 private void getScreenInfo() {
        ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) mDocCateFl.getLayoutParams();
        int margin = 0;
        int padding = 0;
        margin = lp.leftMargin;
        padding = mDocCateFl.getPaddingLeft();
        mItemWidth = (PhoneUtil.getScreenWidth(getContext())-(2*margin) - (2*padding)) / 4 ;
    }
  /**
   * 获取屏幕宽度;
   */
  public static int getScreenWidth(Context context) {
    return context.getApplicationContext().getResources()
        .getDisplayMetrics().widthPixels;
  }

mDocCateFl是中间的layout  , mItemWidth是计算出来的宽度,然后将宽度传到adapter里面。

给对应的 textView设置上就可以了

  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mItemWidth, LinearLayout.LayoutParams.WRAP_CONTENT);
  vh.titleTv.setLayoutParams(params);


相关文章
|
21天前
|
存储 Java Android开发
Android系统 设置第三方应用为默认Launcher实现和原理分析
Android系统 设置第三方应用为默认Launcher实现和原理分析
49 0
|
5天前
|
XML Java Android开发
Android控件动态使用 (转)
Android控件动态使用 (转)
|
7天前
|
Java Shell Android开发
Android11 有线网和wifi优先级设置
Android11 有线网和wifi优先级设置
13 0
|
8天前
|
Java Android开发
Android 设置系统时区的源码追踪
Android 设置系统时区的源码追踪
11 1
|
1月前
|
XML Java Android开发
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
|
1月前
|
XML 编解码 Java
Android控件之高级控件——ListView、cardView、屏幕适配
Android控件之高级控件——ListView、cardView、屏幕适配
|
1月前
|
Android开发
Android控件——Checkbox复选框、RadioButton单选、ToggleButton开关、SeekBar拖动条
Android控件——Checkbox复选框、RadioButton单选、ToggleButton开关、SeekBar拖动条
|
1月前
|
XML Java Android开发
Android之UI基础控件
Android之UI基础控件
|
11天前
|
存储 安全 Android开发
安卓应用开发:构建一个高效的用户登录系统
【5月更文挑战第3天】在移动应用开发中,用户登录系统的设计与实现是至关重要的一环。对于安卓平台而言,一个高效、安全且用户体验友好的登录系统能够显著提升应用的用户留存率和市场竞争力。本文将探讨在安卓平台上实现用户登录系统的最佳实践,包括对最新身份验证技术的应用、安全性考量以及性能优化策略。
|
14天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比