我有一个包含图像视图的框架布局,当用户按下下一个按钮(想想幻灯片)时,它应该更新它显示的图像。因此,我想放入此图像视图中的所有图像都具有相同的尺寸。imageview 在活动开始时显示的初始图像位于 res/drawable-hdpi 目录中,而其他图像位于 assets 目录中。问题是我交换到 imageview 的图像看起来比第一个图像小,尽管所有这些图像的大小相同。
关于布局参数,我的框架布局的 layout_width 和 layout_height 设置为 wrap_content,imageview 也是如此,我尝试将 scaleType 参数设置为每个可能的值,但我仍然看到相同的结果。因此,除非存储在 res/drawable-hdpi 和资产中的图像以某种方式缩放,否则这种行为不应发生。
那么,当用户循环浏览这些图像时,保留图像视图尺寸的最佳方法是什么?
这是我的框架布局和我的图像视图的 XML
<FrameLayout
android:id="@+id/coverLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" >
<ImageView
android:id="@+id/coverImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="false"
android:scaleType="fitCenter"
android:src="@drawable/coverImage" />
</FrameLayout>
这是我将新图像加载到我的图像视图中的代码
_coverImageView = (ImageView) findViewById(R.id.coverImageView);
...
...
if (loadNewImage) {
AssetManager assetMgr = getAssets();
InputStream stream;
try {
stream = assetMgr.open("covers/" + _coverImageName);
Drawable coverDrawable = Drawable.createFromStream(stream, _coverImageName);
_coverImageView.setImageDrawable(coverDrawable);
}
catch (IOException ex) {
System.out.println(ex);
}
}