2011-09-14 71 views
1

一切看上去很完美,當我使用的ImageView來顯示這樣一個PNG圖像:的Android動畫在ImageView的垂直Streched

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/png_picture" 
    android:src="@drawable/paos_connection"/> 

圖像完美縮放,填補水平的屏幕,並具有正確的縱橫比。

現在,我想用動畫替換圖像。我決定使用幀動畫,如下所示:http://developer.android.com/guide/topics/graphics/view-animation.html。我使用的是相同大小的PNG文件(稍微修改了原始文件的副本)。

我的問題是,動畫正在播放,它像以前一樣水平填充屏幕,但現在它被垂直拉伸。我可以迫使它必須通過硬編碼的高度正確的高度:

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="210px" 
    android:id="@+id/animation" /> 

...但顯然這不是一個很好的解決方案,因爲圖像應該對所有屏幕尺寸正確的縱橫比。

我沒有想法,有誰能幫助我嗎?

乾杯!

回答

1

這可能有所幫助。我發現沒有很多步法,你用一個固定的元素卡住了,除非圖像在初始化時按照其餘的佈局繪製。

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

一個快速的黑客,試圖將設置在其位置透明圖像具有相同尺寸的動畫形象。以編程方式使用渲染透明圖像的高度&創建ImageView。之後,動畫化實例化的圖像。

+0

感謝您的回覆。我在這方面嘗試了幾件事,但我不確定我是否明白*完全*你是如何要我這樣做的。 – Bashorings

+0

我試圖設置一個透明的圖像具有相同的尺寸的「android:src」爲相同的ImageView,我以編程方式設置動畫背景。不幸的是,背景仍然捉襟見肘。 :-( 我也嘗試使用'addView(my_new_image_view,width,height)'向同一個LinearLayout添加一個單獨的視圖,但後來我沒有看到任何動畫。我不是在做你推薦的東西嗎? – Bashorings

0

不是在imageview的背景中設置可繪製動畫,而是使用src將其設置在前景中,並讓動畫在那裏播放。如果您爲圖像視圖設置了合適的比例類型,則框架動畫中的所有圖像都將調整爲縱橫比不變。