我有幾個圖像在鰭狀肢動畫中,當下一個按鈕被按下時,下一個圖像應該從右側出來,而當前圖像應該從左側出去,同樣如果回來按下以前應該來自右側當前圖像應該熄滅。我想直接放在外面,在動畫中放在右邊,記住堆的大小,任何機構都有解決方案? 我用這個代碼查看Flipper Android
nbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (current_shown_index < list.length - 1) {
current_shown_index++;
bkbtn.setVisibility(View.VISIBLE);
View view = inflater.inflate(R.layout.view_flipper_item, null);
ImageView iv = (ImageView) view.findViewById(R.id.iv_flipper_item);
iv.setImageResource(list[current_shown_index]);
Log.v("count", vFlipper.getChildCount() + "flipper length");
if (vFlipper.getChildCount() == 3) {
vFlipper.removeViewAt(0);
}
vFlipper.addView(view);
vFlipper.setInAnimation(inFromRightAnimation());
vFlipper.setOutAnimation(outToLeftAnimation());
vFlipper.showNext();
}
}
});
bkbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if (current_shown_index > 0) {
int diff = 2;
if (vFlipper.getChildCount() == 3){
vFlipper.removeViewAt(2);
}
View viewb = inflater.inflate(R.layout.view_flipper_item, null);
ImageView iv = (ImageView) viewb.findViewById(R.id.iv_flipper_item);
if(current_shown_index == 1){
diff = 1;
}else{
iv.setImageResource(list[current_shown_index-diff ]);
}
vFlipper.addView(viewb, 0);
current_shown_index--;
}else{
bkbtn.setVisibility(View.GONE);
}
vFlipper.setInAnimation(inFromLeftAnimation());
vFlipper.setOutAnimation(outToRightAnimation());
vFlipper.showPrevious();
}
});
動畫工作正常,但主要問題是內存我必須刪除視圖,因爲堆大小增加幾個圖像後,所以我想保持最多三個視圖在鰭狀肢,休息我想噸o刪除,這在下一個按鈕上運行良好,但是當我點擊返回按鈕時,它會產生問題,它會改變圖像。 –
@atiq_se好的,我明白了。在這種情況下,爲什麼不使用'ViewPager'呢?有了它,你永遠不會在記憶中保留2個以上的視圖:滑動的和滑入的視圖。當你需要時,你可以在飛行中創建這些視圖,你可以自動獲得滑入式左/右動畫,額外的好處是,您可以通過手指識別來瀏覽圖像。 –