我想要做一個動畫,一個從右向左移動的波形。 我做了一個波的圖像,其中它的起點與終點重合在android中循環顯示一幀圖像
我想要做一個動畫在波的舉動,與animationlist
我將需要超過400幀和大小的應用程序將長大...
我需要一種方法來移動這個唯一的框架從右到左,任何幫助?
我想要做一個動畫,一個從右向左移動的波形。 我做了一個波的圖像,其中它的起點與終點重合在android中循環顯示一幀圖像
我想要做一個動畫在波的舉動,與animationlist
我將需要超過400幀和大小的應用程序將長大...
我需要一種方法來移動這個唯一的框架從右到左,任何幫助?
您可以創建自己的Drawable
實現Animatable
,並讓圖像從右向左移動。這實際上是一件非常有用的事情。但是,您將無法從XML中指定它,您必須構建它並以編程方式進行設置。
首先,你必須加倍你的圖像src的大小,有2個波沒有一個。 接下來,你必須玩你的imageview的邊框,你必須適合只有一個波。這是線索。
注意你的圖像尺寸,特別是寬度。
的動畫,使用:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0%"
android:toXDelta="-50%"
android:fromYDelta="0%"
android:toYDelta="0%"
android:duration="500"
android:repeatCount="1000"
android:interpolator="@android:anim/linear_interpolator"
android:zAdjustment="top" />
比如,你可以將其命名爲RES /動畫/ wave.xml
類(活動):
...
Animation anim = AnimationUtils.loadAnimation(this, R.anim.wave);
anim.setRepeatMode(Animation.Infinite);
animatedIm = (ImageView) findviewbyid(<your-id>)
animatedIm.setAnimation(anim);
你可能需要玩imageview的大小,有一個連續的波動
你甚至可以創建一個GIF和玩這個GIF: 下面是代碼:
類MainActivity:
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MYGIFView(MainActivity.this));
}
}
類MYGIFView:
import java.io.InputStream;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Movie;
import android.view.View;
class MYGIFView extends View {
Movie movie, movie1;
InputStream is = null, is1 = null;
long moviestart;
public MYGIFView(Context context) {
super(context);
// Provide your own gif animation file
is = context.getResources().openRawResource(R.drawable.animation);
movie = Movie.decodeStream(is);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
super.onDraw(canvas);
long now = android.os.SystemClock.uptimeMillis();
System.out.println("now=" + now);
if (moviestart == 0) { // first time
moviestart = now;
}
System.out.println("\tmoviestart=" + moviestart);
int relTime = (int) ((now - moviestart) % movie.duration());
System.out.println("time=" + relTime + "\treltime=" + movie.duration());
movie.setTime(relTime);
movie.draw(canvas, this.getWidth()/2 - 20, this.getHeight()/2 - 40);
this.invalidate();
}
}
裏面的文件夾繪製的將是你的GIF圖片。
沒有他想要的東西k-ballo –
請堅持英語。你可以通過創建一個擴展'Drawable'的類來創建自己的自定義drawable,並實現'Animatable'。然後,您將自己完成繪圖,每次都處於不同的位置,以從單個輸入圖像生成選取框動畫。 –
當我移動圖像的位置時,我該如何做到這一點,它開始在另一邊? –