• 締切済み

androidアプリのアニメーション作成方法

初めまして、現在趣味でAndroidアプリの開発を行っています。 簡単なアニメーションを作成しようと思っているのですが、どうにもうまくいかないので やり方を教えていただければと思います。 【実現したいこと】 1.画面内をタップするたびに表示されている画像が少しずつ下に移動する 2.規定回数画面内をタップすると画像が画面外に落下していく 上記のうち1.がうまく動作しません。 現在以下のようなXMLファイルを作成して1.を実現しようとしています。 <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator" android:fromXDelta="0" android:toXDelta="0" android:fromYDelta="0" android:toYDelta="30" android:fillBefore="true" android:fillAfter="true" android:duration="500" /> 上記のようなXMLファイルでアニメーションを実装すると画面タップのたびに 移動させたい画像の初期の表示位置から30ピクセル落下してまた元の位置に戻る。 という動きを繰り返す処理になってしまいます。 調べたところAndroidのアニメーション処理は実際の画像の座標をずらしているわけではなく 擬似的に移動させているだけだということがわかりました。 私がやりたいことを実装するにはAndroidのアニメーション処理では不可能なのでしょうか? 不可能ならばどのような方法で実現可能なのでしょうか? わかる方がいましたらご教授願います.

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

  • anyhelp
  • ベストアンサー率43% (79/180)
回答No.1

cocos2dを使うと良いです。情報も多いと思います。

関連するQ&A

  • Android Live壁紙のアニメーション実装?

    現在Live壁紙を制作しております。  ・背景画像のスクロール機能  ・アニメーション は実装できましたが、次のステップでつまづいています <実装方法> holder.lockCanvas(); (1)ここで、背景画像を canvasを使ってdrawBitmap しています (2)ここで、アニメーション画像を canvasを使ってdrawBitmap しています holder.jnlockCanvas(); <現状> 次のステップとして、Androidにはアニメーション機能として Alpha / Rotate / Translate / Scale / Set / があるようなので、このアニメーション機能を上記(2)の代わりに アニメーションとして実装させようとしています 現在、制作中のライブ壁紙にActivityクラスを実装し まず、ここのonCreate()の中で setContentView(R.layout.main) を読み込んで、そこにアニメーション画像を定義し その画像がclickされると、R.anim.alphaAnimation で定義した アニメーション動作をさせてみようとしております しかし、思うようにいきません。 R.layout.mainでのレイアウトは表示されず、壁紙アプリの画像しか 見えておりません <問題として考えている点> 背景画像はThreadで流動的に動いています その上にXMLで定義される Alpha / Rotate / ・・・・ のアニメーションは使用するのは無理なのではないか? と考えています <質問> Live壁紙上で、 Alpha / Rotate / Translate / Scale / Set / アニメーションは実装可能でしょうか? もし、可能であればその方法を教えていただけますでしょうか? よろしくお願いします

  • Androidプログラムについて

    Androidのプログラムについてです。 パラパラ漫画のように、多数の画像を読み込んで表示させるプログラムを教えて下さい。 サンプルを見つけましたが、画像数が極端に多い場合、for文などで出来るのでしょうか。 サンプルは下記で見つけました。 http://monoist.atmarkit.co.jp/mn/articles/1205/21/news003.html 画像の読み込みや、 画像をアニメーションのコマとして追加していく方法が記載されていますが、 画像が多い場合、for文などに変更できるのでしょうか。 (プログラム全く初心者です。) <参考> 上記URLには以下サンプルプログラムが記載されています。 // 画像の読み込み // Drawable frame1 = con.getResources().getDrawable( R.drawable.frame1 ); Drawable frame2 = con.getResources().getDrawable( R.drawable.frame2 ); Drawable frame3 = con.getResources().getDrawable( R.drawable.frame3 ); Drawable frame4 = con.getResources().getDrawable( R.drawable.frame4 ); Drawable frame5 = con.getResources().getDrawable( R.drawable.frame5 ); // 画像をアニメーションのコマとして追加していく anim.addFrame( frame1, 60 ); anim.addFrame( frame2, 60 ); anim.addFrame( frame3, 70 ); anim.addFrame( frame4, 80 ); anim.addFrame( frame5, 120 ); anim.addFrame( frame4, 80 ); anim.addFrame( frame3, 70 ); anim.addFrame( frame2, 60 ); anim.addFrame( frame1, 60 ); <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/frame1" android:duration="60" /> <item android:drawable="@drawable/frame2" android:duration="60" /> <item android:drawable="@drawable/frame3" android:duration="70" /> <item android:drawable="@drawable/frame4" android:duration="80" /> <item android:drawable="@drawable/frame5" android:duration="120" /> <item android:drawable="@drawable/frame4" android:duration="80" /> <item android:drawable="@drawable/frame3" android:duration="70" /> <item android:drawable="@drawable/frame2" android:duration="60" /> <item android:drawable="@drawable/frame1" android:duration="60" /> </animation-list> .

    • ベストアンサー
    • Java
  • Androidアプリで操作を表示させたい

    AndroidStudioを使用して操作した順に羅列させるアプリを作りたいです。 認識する操作は、左右のスワイプ、タップ(タップした位置も含む)、長押しです。 http://www110.kir.jp/Android/index.html こちらのサイトの画面操作の項目の タップ/ダブルタップを検出する [1] スワイプを検出する [3] 長押しを検出する [4] 画像の任意の領域のクリック判定をする [5]  ←こちらは画面のタッチ位置を判定に変えたい 以上4つを組み合わせて作ることをイメージをしています。 JAVAは本当に簡単なことしかわかりません。 張っているURLのサンプルはコピペするだけで動作するものは(例えばクリックされた回数を表示する [1])動かせたのですが、 タップ/ダブルタップを検出する [1]の項目を動かそうとしてもxmlとMainActivity.javaがなくて動かせませんでした。 動作を順に表示さえできればいいので、どうかお教えください。 または参考サイトをお教えください。

    • ベストアンサー
    • Java
  • Androidで、ImageViewを移動させたい

    Androidアプリを開発しているのですが、ImageViewを移動させるのがうまく出来ません。 アニメーションではなくて、所定の位置に単に移動させたいです。 最近の機種では、imgView.setTranslationX(x);で、できたのですがAndroid2.2などではサポートされておらず…。 レイアウトXMLのandroid:layout_marginRightなどが簡単に設定できると理想です。 なにか方法はあるのでしょうか?

  • androidアプリ開発 -間違い探しアプリ-

    androidの間違い探しアプリを作ろうと思っています。 イメージ的には背景用のImageViewに画像を表示して、 間違っている箇所にカラのImageViewを載せ、 ImageViewがクリックされたら正解というような仕組みにしようと思っています。 そこで、下記コードを書いています。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical" > <ImageView android:id="@+id/mainImage" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/stage1" ></ImageView> <ImageView android:id="@+id/onImage" android:layout_width="40dip" android:layout_height="40dip" android:layout_marginLeft="240dp" android:layout_marginTop="180dp" android:onClick="seikai" /> </RelativeLayout> が、解像度や画面サイズによってカラのImageViewの場所が変わってしまい、うまくいきません。 resフォルダ内に 「layout-land-hdpi」 「layout-land-ldpi」 「layout-land-mdpi」 「layout-land-xhdpi」 フォルダを作り、解像度ごとに位置の微調整は行なっていますが、 画面サイズが異なるとやはりずれてしまいます。 解像度、画面サイズにかかわらず位置を固定する方法はないのでしょうか。 ない場合はやはり画面サイズと解像度すべての条件のxmlを作成する必要がありますか。 また、そもそも 「イメージ的には背景用のImageViewに画像を表示して、間違っている箇所にカラのImageViewを載せる」やり方が間違っているのでしょうか。

  • Androidプログラムについて

    多数の画像を、パラパラ漫画のように切り替えていく方法について相談があり、投稿させていただきました。 以前、xmlファイルで画像を読み込む方法が簡単だということで、hirotn様にご回答いただき、 動作させることができました。 ありがとうございました。 携帯の実機にインストールし、エラーも出ず動作することも確認できたのですが、 画像を切り替えるタイミングがあまりにも遅くなっており困っています。 画像が多い場合は、メモリ不足等起こっているのでしょうか。 プログラムで解決できる方法があれば教えていただきたく、よろしくお願いします。 (ちなみに、xmlファイルで読み出すファイルは100枚程度(80MB程度)です。 もっと数を増やしたり、画質をよくしたいとも思っております。) ※サンプルは下記で見つけました。 http://monoist.atmarkit.co.jp/mn/articles/1205/21/news003.html (以下、プログラム) package jp.test.animation.frame; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class FrameAnimationTestActivity extends Activity { // ボタン Button mBtnAnimation; Button m5BtnAnimFromXML; // ビュー ImageView mImageAnimation; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mBtnAnimation = (Button) findViewById( R.id.button_animation ); m5BtnAnimFromXML = (Button) findViewById( R.id.button_anim_from_xml ); mImageAnimation = (ImageView) findViewById( R.id.image_animation ); mBtnAnimation.setOnClickListener(mClickListener); m5BtnAnimFromXML.setOnClickListener(mClickListener); } View.OnClickListener mClickListener = new View.OnClickListener() { public void onClick(View v) { // アニメーション中なら、停止 Drawable d = mImageAnimation.getBackground(); if( d != null ){ try{ if( ((AnimationDrawable) d).isRunning() ){ ((AnimationDrawable) d).stop(); return; } } catch( RuntimeException e ){ e.printStackTrace(); } } //if( v == mBtnAnimation ){ //frameAnimationTest( //FrameAnimationTestActivity.this, mImageAnimation ); //} if( v == m5BtnAnimFromXML ){ frameAnimationFromXMLTest( mImageAnimation ); } } }; // フレームアニメーションを XML から読み込む void frameAnimationFromXMLTest( View v ){ // リソースからアニメーションを読み込み、ビューに設定 v.setBackgroundResource( R.drawable.droid_jump ); // ビューからアニメーションを取り出し AnimationDrawable anim = (AnimationDrawable)v.getBackground(); // アニメーション開始 anim.start(); } }

  • [Objective-C]アニメーション

    Xcode 4.5.2を使用して、Objective-CでiPhoneアプリの開発を行っています。 UIView(viewAとします)のsubViewとして 3つのUIButton(btn1, btn2, btn3とします)を配置し、 「animateWithDuration:delay:options:animations:completion:」メソッドを使用して viewAごと移動させるアニメーションを実行しようとしています。 btn1~btn3のタップイベントを実装したいのですが アニメーション実行中はbtn1~btn3のタップイベントが受け付けられません。 「animateWithDuration:delay:options:animations:completion:」メソッドの「option:」に 「UIViewAnimationOptionAllowUserInteraction」を指定してみたのですが それでもだめです。 原因が分かる方、いらっしゃいましたら教えていただけないでしょうか? 初歩的な質問で申し訳ありません。。 (ソース) ※画面はstoryboardで作成しています。 //アニメーション設定 [UIView animateWithDuration:5.0f delay:0.5 options:UIViewAnimationOptionCurveLinear |UIViewAnimationOptionAllowUserInteraction animations:^{ //移動 [self.viewA setFrame:CGRectMake(0, 330, 320, 60)]; } completion:^(BOOL finished) { //処理 } ];

  • JavaScriptでアニメーションを作成

    JavaScript初心者です。よろしくお願い致します。 現在製作中のサイトにて、JavaScriptを使ったアニメーションを作りたいと思います。 アニメーションの動きは下記のとおりです。 Aの背景画像を、ブラウザサイズにより画面いっぱいに表示。 その上にBの画像を配置(位置はAのこの位置…と決められています)。 ↓ 画面をクリック後、Aの背景、およびBの背景が拡大されてフェードアウトされます。 その拡大方法なのですが、それぞれの中心から拡大するのではなく、 ちょうど建物の前に犬がいるところに近づくような アニメーションを施したいと思います(※添付画像を参考)。 参考になるサイト、およびjQueryなどありいましたら教えてください。 なにぶん、JavaScriptを使いはじめてまだ間もないので、 参考書を探すのにも苦労している次第です。 よろしくお願い致します。

  • アンドロイドにflashをインストールする方法

    アンドロイドのタブレットPCにflashをインストールしたいのですが、 上手く出来ません。 http://helpx.adobe.com/jp/flash-player/kb/cq01160102.html このサイト(アドビ公式)を見て進めているのですが、 >>> Flash Player を Android デバイスにインストールする方法 「設定」メニューを開きます。 「セキュリティ」を選択します。 「提供元不明のアプリ」を有効にします。確認のメッセージが表示されたら、「OK」をタップします。 設定画面を閉じ、ブラウザーを起動します。 「Flash Player アーカイブ」で検索するか、または以下の URL に直接アクセスします。 URL : http://helpx.adobe.com/jp/flash-player/kb/228683.html デバイスにインストールされている Android のバージョンに応じて、適切なバージョンの Flash Player をタップします。 ダウンロードが開始されます。そのまましばらくお待ちください。 ダウンロードが完了したら通知を開き、ダウンロードした apk ファイルをタップします。 確認のメッセージが表示されたら「OK」をタップし、インストールを開始します。 この最後の項目でapkファイルを開く事は出来、 「インストール」「キャンセル」というボタンが表示され、そのインストールのボタンがクリックできません。 アンドロイドのバージョンは3.2で、Adobe側のバージョンもそれに合ったものを選択しています。 最新版と2番目に最新のものを試しましたが駄目でした。 何課良い方法を教えて下さい。

  • Androidのレイアウトについて

    XMLで作成したTextViewを処理中に色を変えることは出来ないのでしょうか? 下記のようにやれば実装できるのでは?と思ってやってみましたがダメでした、 XMLファイルを使った方法で文字の色を変更する事は可能ですか? hogehoge.xml---------------------------------------------- <TextView android:id="@+id/text" android:textColor="@color/black" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hogehoge" /> hogehoge.java--------------------------------------------- EditText textView=(EditText)findViewById(R.id.text); textView.setTextColor(Color.RED); ---------------------------------------------------------

専門家に質問してみよう