我有一個框架佈局,它包含一個圖像視圖,當用戶按下下一個按鈕時(想象一個幻燈片),它應該更新它顯示的圖像。我想要在這個圖像視圖中放置的所有圖像具有相同的尺寸。活動開始時由imageview顯示的初始圖像位於res/drawable-hdpi目錄中,而其他圖像位於assets目錄中。問題是,我交換到imageview的圖像看起來比第一個圖像小,儘管所有這些圖像的大小相同。ImageView的尺寸大小不一樣ImageView
關於佈局參數,我的框架佈局的layout_width和layout_height設置爲wrap_content,imageview也是如此,我試着將scaleType參數設置爲每個可能的值,我仍然看到相同的結果。因此,除非存儲在res/drawable-hdpi和資產中的圖像以某種方式縮放,否則不應該發生此行爲。
那麼,當用戶在這些圖像中循環時,保留圖像視圖的尺寸的最佳方法是什麼?
這裏是我的XML的框架佈局&我的ImageView
<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>
下面是加載新的圖像進入我的ImageView我的代碼
_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);
}
}
您是否嘗試將framelayout設置爲靜態維度以查看它是否仍然存在? – VicVu