【问题标题】:multiply xml for single activity为单个活动乘以 xml
【发布时间】:2025-11-28 09:25:03
【问题描述】:

对于不同的输入,我有 1 个活动需要更改其 XML 文件上按钮的位置。 我尝试通过使用 setX 到不同的位置来做到这一点,但它没有移动。 我在想也许可以制作几个 XML,其中一些数据包括按钮 ID,唯一不同的是屏幕上的位置。但是我需要为某些活动附加不同的 XML。这是否可能以及如何做到这一点? 非常感谢 酒吧。

【问题讨论】:

    标签: xml button android-activity position


    【解决方案1】:

    我发现代码没有在布局上移动我的图像有什么问题。所以这比制作多个布局要容易得多。 如果我们想通过 setX(number) 改变图像的位置,我们首先要调用它的参数。

    原来是这样的:

    1. imageviewLeft.requestLayout(); // 获取它的大小参数

    2. imageviewLeft.setX(number);

    然后它会计算出正确的新位置。

    请记住,数字单位是像素,不能用 dp,spec 表示。

    因此,为了帮助从 dp 转换为 px,我们可以使用以下代码:

    private int dp2px(int dp) {
        float scale = getResources().getDisplayMetrics().density;
        int pixels = (int) (dp * scale + 0.5f);
        return pixels;
    } 
    

    【讨论】: