gpt4 book ai didi

java - ImageView 数组不保持纵横比

转载 作者:行者123 更新时间:2023-12-02 02:57:23 25 4
gpt4 key购买 nike

我有一个小问题,我认为更有经验的人可以轻松解决。在 ImageView 中,我根据需要设置了 xml 中的所有属性,并且它完美地显示了我的图像。然后我决定创建一个 imageView 数组,并在每次应用程序中发生某些情况时更改图像。这是我之前显示得很好的 xml:

`<ImageView
android:id="@+id/questions_image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:contentDescription="@string/image_q1"
android:layout_margin="16dp"
android:src="@drawable/view_groups_good"
android:layout_below="@id/score_no"/>`

创建数组后,我从 xml 中删除了 android :src 属性,并创建了这个方法,每次我想要更改图像时都会调用该方法。

这是我之前的onCreate

int [] imageAllQ = {R.drawable.view1, R.drawable.view2, R.drawable.view3, R.drawable.view4, R.drawable.view5, R.drawable.view6, R.drawable.view7, R.drawable.view8, R.drawable.view9, R.drawable.view10};
int imgCount = 0;
ImageView questionsViews;

这就是方法:

public void changeImgQA (){
questionsViews = (ImageView)findViewById(R.id.questions_image_view);
questionsViews.setBackgroundResource(imageAllQ[imgCount]);
imgCount = imgCount + 1;
}

一切都完全按照我想要的方式工作,但是现在 ImageView 没有考虑 xml 属性,并且显示的图像是扭曲的,我的意思是它在宽度上与父级匹配,但在高度上它完全扭曲,相比之下太小达到我想要的。

欢迎任何建议

最佳答案

你应该使用

questionsViews.setImageResource(imageAllQ[imgCount]);

而不是

questionsViews.setBackgroundResource(imageAllQ[imgCount]);

原因

setImageResourceImageView 的公共(public)方法,负责将 ImageView 的源设置为给定资源。

Sets a drawable as the content of this ImageView.

setBackgroundResourceView 的公共(public)方法,负责将 View 的背景设置为给定资源。

Set the background to a given resource. The resource should refer to a Drawable object or 0 to remove the background.

顺便说一句

您应该在 onCreate 中初始化您的 ImageView,然后重新使用它,而不是每次更改图像时都调用 findViewById

关于java - ImageView 数组不保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877091/

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