显示的图标跟UI界面对应不上。

图片跟UI界面不符合。

要找到对应dp的值。UI的dp要跟代码里的xml文件里的dp要对应起来。

蓝湖里设置一个宽度给对应上。然后把对应的值填入xml.

一个屏幕上的图片到底是用topmarin来设置,还是用bottommarin来设置。

因为第一节,5,7 车厢的,高度 截断了一些,所以对代码进行调整,让 android:id="@+id/train_image" 改成了 android:scaleType="centerInside" 并且让代码里的 新车厢也调整。把原来的 我这样改变后,哪个宽度也受影响了。

之前是一个固newCarriage.setScaleType(ImageView.ScaleType.CENTER_CROP); 改成 newCarriage.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 因为调整了车厢尺寸,导致 宽度也调整了。那么有更简单的办法吗?

只是单独对 1,5,7 车厢高度,进行设置一个固定240dp, 还是不改变原来的的缩放,因为改变原来的缩放,会导致整个车厢都会变动。

复制代码
        paramsTrain.height = dpToPx(240); // 高度设置为240dp
        paramsTrain.setMarginStart(0);
//        paramsTrain.bottomMargin = dpToPx(50); // 统一 bottomMargin
        paramsTrain.topMargin = carriageTopMargin - dpToPx(20); // 减去40dp以对齐底部

        // 新车厢的宽度(固定为 CARRIAGE_WITH_HIGHT)
        int carriageWidth = dpToPx(CARRIAGE_WITH_HIGHT);
        int carriageHeight = (carriageCount + 1 == 5 || carriageCount + 1 == 7) ? dpToPx(240) : dpToPx(CARRIAGE_WITH_HIGHT);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                carriageWidth,
                carriageHeight
        );

      params.topMargin = (carriageCount + 1 == 5 || carriageCount + 1 == 7) ? carriageTopMargin - dpToPx(20) : carriageTopMargin;
        newCarriage.setLayoutParams(params);
相关推荐
张拭心5 分钟前
Android 17 来了!新特性介绍与适配建议
android·前端
Kapaseker2 小时前
Compose 进阶—巧用 GraphicsLayer
android·kotlin
黄林晴3 小时前
Android17 为什么重写 MessageQueue
android
阿巴斯甜1 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker1 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95271 天前
Andorid Google 登录接入文档
android
黄林晴1 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab2 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android