2011-02-15 127 views
2

我有一個酒吧與幾個ImageViews,他們每個人都用作一個按鈕(通過使用OnClickListener)。現在我想要實現的是,當用戶按下圖像時,圖像周圍會出現某種發光效果(就像在iPhone上按barButton時一樣)。Android:動畫圖像?

這可能嗎?

回答

1

這是可能的。達到此目的的正確方法是定義一個StateList Drawable
狀態列表爲每個狀態定義一個單獨的drawable。

例如下面的XML定義了一可拉伸表示如果按鈕按下blue_button_pressed繪製和在所有其他情況下,可繪製blue_button_active。

<?xml version="1.0" encoding="utf-8"?> 
<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<item 
    android:state_pressed="true" 
    android:drawable="@drawable/blue_button_pressed"/> 

<item 
    android:drawable="@drawable/blue_button_active"/> 

</selector> 

你把這個文件中的文件夾繪製像任何其他圖像,也引用它的佈局文件像任何其他繪製。

+1

好的,但是這意味着我將不得不手動創建2個圖像。那裏沒有內置的動畫嗎? – Alex1987 2011-02-15 11:56:29

-1

您可以手動生成此發光效果作爲背景圖片,並使其在單擊時顯示爲實際圖像背後的父視圖。但我不認爲有任何本地功能。

0

儘管出於某種原因,大多數視圖實際上並沒有動畫動畫可繪製。要做到這一點,你必須通過調用AnimationDrawablestart()方法(或Animatable,對於這個問題)手動啓動動畫。

雖然將Drawable設置爲View後,您不能立即執行此操作,但出於某種奇怪的原因。相反,你可以嘗試發佈開始通話的處理程序,使存在Drawable和初始設置其動畫的開始之間的一段時間。

沒有時間找出爲什麼它的行爲這樣還,但它是我最後不得不做的事。