【问题标题】:How can I prevent an ImageView from resizing to fit the screen programmatically?如何防止 ImageView 以编程方式调整大小以适应屏幕?
【发布时间】:2019-01-03 00:16:53
【问题描述】:

我正在制作一个 2D 平台类型的游戏。我使用 JAVA 制作了一个ImageView假定大约是屏幕水平尺寸的两倍。

但是,当 ImageView 显示时,无论图像大小如何,它都会不断调整大小以适合我的屏幕。请注意,我没有使用 XML,而是纯粹使用 JAVA。 如何防止这种情况发生?

代码如下:

    ConstraintLayout gameLayout;
    gameLayout = findViewById(R.id.gameLayout);


    ImageView map = new ImageView(this);
    map.setImageResource(R.drawable.tutorial_map);
    map.setX(0);
    map.setY(0);
    gameLayout.addView(map);

如有必要,请随时进一步编辑。

【问题讨论】:

    标签: java android imageview


    【解决方案1】:

    使用map.setScaleType(ScaleType.FIT_XY);

    你也可以使用map.setAdjustViewBounds(true);

    确保使用map.setBackgroundResource(R.drawable.tutorial_map) 而不是map.setImageResource(R.drawable.tutorial_map).

    【讨论】:

    • 这些似乎都不适合我。当我尝试使我的地图更大(MS 绘制)时,它们根本不会出现。 (这与我输入的其他代码有关,所以这可能是正确的) 编辑:您希望我提供屏幕截图吗?
    • 也许你应该尝试设置背景而不是设置图像资源。
    • 使用这个map.setBackgroundResource(R.drawable.tutorial_map);
    • 再一次,这些都不起作用。我将进行编辑,显示该事物的一些屏幕截图。你是在测试这些,还是仅仅依靠记忆?因为,如果你在测试它们,这可能是我的代码的另一个未实现的问题。
    • 我已经编辑了我的问题,用您的解决方案添加了我的 android 设备的屏幕截图。
    【解决方案2】:

    您使用什么框架来构建游戏。我的建议是使用超级轻量级​​、跨平台且很棒的 libgdx。相信我,这个问题将是您遇到的最少的问题。作为开发人员,您需要考虑您的代码明天将如何更改。 因此,由于您使用的是图像视图,因此只需将窗口的宽度设置为固定并根据需要缩放图像视图。干杯!

    【讨论】:

    • 对于这个项目,我将只使用 Android 和 Java,没有任何插件。不过感谢您的建议:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2011-02-03
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多