###前提・実現したいこと
Android studioを使ってアニメGIFを動かしたくGifImageViewクラスを作って試したのですがMainActivityにsetする部分が分かりません。
###発生している問題・エラーメッセージ
in imageView cannot be applied
// setImageViewResourceでセットすると適用されません。
###該当のソースコード
//MainActivity
import android.content.res.AssetManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.IOException;
import java.io.InputStream;
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageView imageView = (ImageView) findViewById(R.id.animeImageView); Button animeButton = (Button) findViewById(R.id.animeButton); animeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AssetManager assetManager = getResources().getAssets(); try { InputStream is = assetManager.open("sankaku.gif"); GifImageView gifImageView = new GifImageView(getApplicationContext(),is); imageView.setImageViewResource(gifImageView); }catch (IOException e){ e.printStackTrace(); } } }); }
}
//GifImageView
public class GifImageView extends ImageView{
private Movie mMovie; private long mMovieStart; public GifImageView(Context context, InputStream is){ super(context); mMovie = Movie.decodeStream(is); } @Override protected void onDraw(Canvas canvas){ canvas.drawColor(Color.TRANSPARENT); final long now = SystemClock.uptimeMillis(); if(mMovieStart == 0){ mMovieStart = now; } final int relTime = (int)((now - mMovieStart) % mMovie.duration()); mMovie.setTime(relTime); mMovie.draw(canvas,10,10); this.invalidate(); }
}
###試したこと
setImageViewBitmapもダメです。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/20 02:04
2016/05/20 02:24
2016/05/20 09:27
2016/05/20 09:38