我正在嘗試創建一個單臂強盜應用程序。 我已經創建了一個動畫xml文件來通過多個圖像。當點擊一個按鈕時,動畫停止。在ImageView上比較Drawables
我的問題是如何比較一個動畫停止與另一個動畫停止的圖片?到目前爲止,我試過這樣的事情:
if(wheel1.getBackground().getConstantState().equals(wheel2.getBackground().getConstantState())) matches++;
任何幫助表示讚賞。
我正在嘗試創建一個單臂強盜應用程序。 我已經創建了一個動畫xml文件來通過多個圖像。當點擊一個按鈕時,動畫停止。在ImageView上比較Drawables
我的問題是如何比較一個動畫停止與另一個動畫停止的圖片?到目前爲止,我試過這樣的事情:
if(wheel1.getBackground().getConstantState().equals(wheel2.getBackground().getConstantState())) matches++;
任何幫助表示讚賞。
你必須開始屏幕動畫,.animationStart()
只是使用.onAnimationStop()
,它會自動觸發事件。
A View
不應該維護應用程序邏輯,控制器(您的主機Activity
或Fragment
)應該。
也就是說,要達到您想要使用View.setTag()
來將每個View
的邏輯描述應用於它。 然後通過你已經和在屏幕上得到他們的位置都Views
停止動畫,循環時,得到Views
在匪機器的每一列大多是可見的,並比較它們的標籤(View.getTag()
)
例如,如果項目垂直動畫使用下面的方法來確定匪徒停止的地方。
//the area where to compare views
int BOUND_TOP, BOUNT_DOWN;
//your content view
ViewGroup rootLayout;
//method to get information about what is visible
public List<Object> getVisibleViewTags() {
List<Object> list = new LinkedList<>();
int count = rootLayout.getChildCount();
for (int pos = 0; pos < count; pos++) {
View child = rootLayout.getChildAt(pos);
float translationY = child.getTranslationY();
if (translationY > BOUND_TOP && translationY < BOUND_DOWN) {
list.add(child.getTag());
}
}
return list;
}
現在,您只需將視圖的相關信息作爲標記添加到它即可。 例如:
view.setTag("view_apples");
或
view.setTag("view_bananas");
很抱歉,如果我沒有讓自己清楚。我對如何停止或啓動動畫沒有任何問題。我想比較動畫停止時ImageView的圖片,看它們是否相同。 – Jesper