Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态创建的ImageView在创建时会拉伸_Java_Android_Dynamic_View_Imageview - Fatal编程技术网

Java 动态创建的ImageView在创建时会拉伸

Java 动态创建的ImageView在创建时会拉伸,java,android,dynamic,view,imageview,Java,Android,Dynamic,View,Imageview,在我的android应用程序中,我会根据用户之前是否购买过建筑动态创建ImageView。(建筑物就是图像)。我的问题是,当创建ImageView时,图像被拉伸,ImageView看起来很大。我不知道为什么它会这样做,因为我在我的应用程序的不同部分做了同样的事情,而建筑物的负荷正常大小,就像他们应该做的那样 以下是动态创建的ImageView的代码: ImageView mainHut = new ImageView(BattleActivity.this); mainHut.setImageR

在我的android应用程序中,我会根据用户之前是否购买过建筑动态创建ImageView。(建筑物就是图像)。我的问题是,当创建ImageView时,图像被拉伸,ImageView看起来很大。我不知道为什么它会这样做,因为我在我的应用程序的不同部分做了同样的事情,而建筑物的负荷正常大小,就像他们应该做的那样

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

ImageView mainHut = new ImageView(BattleActivity.this);
mainHut.setImageResource(R.drawable.mainhut);
mainHut.setX(mainHutX);
mainHut.setY(mainHutY);
bottomLayout.addView(mainHut);
它被添加到名为bottomLayout的框架布局中

下面是bottomLayou框架布局:

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

</FrameLayout>


感谢您的帮助。谢谢。

您没有明确指定布局参数,因此addView()方法正在调用generateDefaultLayoutParams()[请参阅:]

在Java中指定布局参数,如下所示:

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

如果没有完整的XML布局,这只是猜测,您是否尝试过类似
mainHut.setScaleType(ScaleType.FIT_CENTER)的方法?@JonnyHenly是的,我已经试过了,它没有改变任何事情。我将添加ImageView要添加到的布局。