質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2651閲覧

Android studio アニメGIFのセットができない

navesanta

総合スコア198

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/05/19 23:52

###前提・実現したいこと
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/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ImageView#setImageViewResourceと言うメソッドは存在しないですよね。
レイアウトファイルにViewGroupを追加し、GifImageViewをそのViewGroupにaddしたらいいと思いますよ。

投稿2016/05/20 01:17

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

navesanta

2016/05/20 02:04

>GifImageViewをそのViewGroupにaddしたらいいと思いますよ。 回答ありがとうございます。 しかしすみません、addするという意味がよく理解できません。 レイアウトファイルはちなみに下記です。ImageViewを既に記述しておりfindViewByIdでインスタンス化もしてあります。 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.mobreve.kujiapp2.MainActivity"> <ImageView android:id="@+id/animeImageView" android:layout_width="320dp" android:layout_height="320dp" android:layout_gravity="center" android:layout_marginTop="30dp"/> <Button android:id="@+id/animeButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/push_Button" android:layout_gravity="center" android:layout_marginTop="30dp"/> </LinearLayout>
yona

2016/05/20 02:24

1-xmlにFrameLayoutを追加 2-1で追加したFrameLayoutをインスタンス化 3-2でインスタンス化のFramelayout#addViewを使ってFrameLayoutにGigImageViewを追加する。
navesanta

2016/05/20 09:27

分かりやすい解説ありがとうございました。
yona

2016/05/20 09:38

解決してよかったです。 あと、コードはコード用の記述方法があるのでそちらに修正した方がいいですよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問