gpt4 book ai didi

Android根据屏幕尺寸更改图像尺寸?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:49 25 4
gpt4 key购买 nike

因此我需要根据屏幕区域更改图像的大小。图像必须是屏幕高度的一半,否则它会与一些文本重叠。

所以高度= 1/2 屏幕高度。Width = Height*Aspect Ratio(只是尽量保持纵横比相同)

我发现了一些东西:

Display myDisplay = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width =myDisplay.getWidth();
int height=myDisplay.getHeight();

但我如何在 java 中更改图像高度?甚至 XML 如果可能的话?我似乎找不到有效的答案。

最佳答案

您可以在代码中使用 LayoutParams 来做到这一点。不幸的是,没有办法通过 XML 指定百分比(不是直接的,你可以乱用权重,但这并不总是有帮助,而且它不会保持你的纵横比),但这应该适合你:

//assuming your layout is in a LinearLayout as its root
LinearLayout layout = (LinearLayout)findViewById(R.id.rootlayout);

ImageView image = new ImageView(this);
image.setImageResource(R.drawable.image);

int newHeight = getWindowManager().getDefaultDisplay().getHeight() / 2;
int orgWidth = image.getDrawable().getIntrinsicWidth();
int orgHeight = image.getDrawable().getIntrinsicHeight();

//double check my math, this should be right, though
int newWidth = Math.floor((orgWidth * newHeight) / orgHeight);

//Use RelativeLayout.LayoutParams if your parent is a RelativeLayout
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
newWidth, newHeight);
image.setLayoutParams(params);
image.setScaleType(ImageView.ScaleType.CENTER_CROP);
layout.addView(image);

可能过于复杂,也许有更简单的方法?不过,这是我首先要尝试的。

关于Android根据屏幕尺寸更改图像尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com