java - 动态创建的 ImageView 在创建时被拉伸(stretch)

标签 java android dynamic view imageview

在我的 Android 应用程序中,我根据用户之前是否购买过建筑物动态创建 ImageView。 (建筑物是图像)。我的问题是,当创建 ImageView 时,图像被拉伸(stretch),ImageView 看起来很大。我不知道为什么会这样做,因为我在我的应用程序的不同部分做了同样的事情,并且建筑物加载了正常大小。

下面是动态创建的 ImageView 的代码:

ImageView mainHut = new ImageView(BattleActivity.this);
mainHut.setImageResource(R.drawable.mainhut);
mainHut.setX(mainHutX);
mainHut.setY(mainHutY);
bottomLayout.addView(mainHut);

它被添加到名为 bottomLayout 的 FrameLayout。

这里是bottomLayou FrameLayout:

<FrameLayout 
    android:id="@+id/gameBottom"
    android:layout_weight="0.25"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

</FrameLayout>

感谢任何帮助。谢谢。

最佳答案

您没有明确指定布局参数,因此 addView() 方法正在调用 generateDefaultLayoutParams() [参见:What's the default layout of an ImageView? ]

像这样在 Java 中指定布局参数:

mainHut.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));

关于java - 动态创建的 ImageView 在创建时被拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27975619/

相关文章:

java - recyclerview 上的运行时异常

java - 如何链接这两个鼠标事件? JavaFX

android - 使用正则表达式从android中的网站文本数据中获取电话号码

java - AndroidManifest 虽然存在,但丢失了

c# - 如何访问 UserControl 上的控件?

java - Hibernate BeanCreationException 异常

java - 在 Java 中如何将 ASCII 字符写入文件?

android - Android Studio中使用GameCircleSDK时多个dex文件定义Lcom/amazon/ags/BuildConfig

symfony 动态设置 cookie_domain

zend-framework - Zend ACL 动态断言