我有一個用於我的佈局背景的圖像。我希望它開始向右移動,而從右側消失的每一幀都應該重新出現在左側。因此,只有一張照片,圖像會持續移動。我怎樣才能做到這一點?連續移動背景到右側並使其從左側重新出現
0
A
回答
0
這樣做的最簡單和最快的方式,它是在一個ViewGroup
有兩個ImageView
S和兩個型動物動畫動畫。通過獲取容器的寬度,第一個將從其位置(START
)移動到右邊緣(PARENT_WIDTH
),第二個將從容器外部(-PARENT_WIDTH
)移動到內部(START
)。最後,使動畫重複INFINITE
將做一個真正的循環的幻覺。
private ViewGroup parent;
private ImageView imgInner, imgOutter;
@Override
public void onCreate(...) {
...
parent = (ViewGroup) findViewById(R.id.parent_loop);
imgInner = (ImageView) findViewById(R.id.image_loop_inner);
imgOutter = (ImageView) findViewById(R.id.image_loop_outter);
...
setImageLoop();
}
private void setImageLoop() {
// Need a thread to get the real size or the parent
// container, after the UI is displayed
imgInner.post(new Runnable() {
@Override
public void run() {
TranslateAnimation outAnim =
new TranslateAnimation(
0f, parent.getWidth(), 0f, 0f);
// move from 0 (START) to width (PARENT_SIZE)
outAnim.setInterpolator(new LinearInterpolator());
outAnim.setRepeatMode(Animation.INFINITE); // repeat the animation
outAnim.setRepeatCount(Animation.INFINITE);
outAnim.setDuration(2000);
TranslateAnimation inAnim =
new TranslateAnimation(
- parent.getWidth(), 0f, 0f, 0f);
// move from out width (-PARENT_SIZE) to 0 (START)
inAnim.setInterpolator(new LinearInterpolator());
inAnim.setRepeatMode(Animation.INFINITE);
inAnim.setRepeatCount(Animation.INFINITE);
inAnim.setDuration(2000); // same duration as the first
imgInner.startAnimation(outAnim); // start first anim
imgOutter.startAnimation(inAnim); // start second anim
}
});
}
容器的ViewGroup在其寬度match_parent
,但它可以被改變,並且因此START
屬性將通過類似parent.getLeft()
來代替。這種佈局可能是LinearLayout
,RelativeLayout
或其他。例如,我用這個:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="250dp"
...>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
.../>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
.../>
</FrameLayout>
這給了我這個輸出(牢記GIF使它看起來波濤洶涌當它是真的不):
+0
非常感謝。工作! –
0
更新代碼:
img = (ImageView) findViewById(R.id.imageView1);
TranslateAnimation animation = new TranslateAnimation(-95.0f, 740.0f,
0.0f, 0.0f); // new TranslateAnimation(xFrom,xTo, yFrom,yTo)
animation.setDuration(5000); // animation duration
animation.setRepeatCount(5); // animation repeat count
img.startAnimation(animation); // start animation
相關問題
- 1. 動畫移動到左側和右側?
- 2. 從右側滑動div到左側<
- 3. 滑動面板從左側到右側
- 4. 從右側而不是從左側定位背景圖像
- 5. 如何讓圖像從左側0,0位置向右側移動到右側?
- 6. Android AlertDialog將PositiveButton移動到右側並將NegativeButton移動到左側
- 7. Ios將標籤(歌名)從右側移動到左側?
- 8. 溢出到左側而不是右側
- 9. 溢出滾動框移動div的左側和右側
- 10. div背景僅重複到左側
- 11. 動畫從右側和左側查看
- 12. UIScrollView拖動到右側或左側
- 13. 僅iPad風景(左側或右側)
- 14. CSS:如何在內容的左側和右側製作背景
- 15. 從畫布左側向右側直線移動圓圈
- 16. 空間出現在滾動視圖android的右側和左側?
- 17. 如何檢測鼠標是否移動到左側或右側?
- 18. 將UIBarButton移動到UINavigationBar左側的右側 - Swift 2
- 19. ActionScript MovieClip移動到左側,但不是右側
- 20. 將頁面左側的標籤頁移動到右側
- 21. 左側和右側jQuery動畫運動
- 22. 將右側的R圖移動到側
- 23. 如何動畫UIView離開屏幕到右側,然後再從左側重新出現
- 24. 如何使子菜單出現在左側,而不是右側
- 25. 如何在右側和左側不同時重複標題圖像的背景?
- 26. SQL長度,左側,右側新列
- 27. 灰色背景右側
- 28. 左右連續移動div
- 29. UITableView從UIView右側出現
- 30. 加入左側和右側
嘗試,如果是這樣的你想要[如何在Android中從左向右移動圖像](http://stackoverflow.com/questions/4689918/how-to-move-an-image-from-left-to-right-in-android ) – BrunoM24