Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
水問

Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#1

投稿記事 by 水問 » 10年前

Androidの画面遷移時に、画面をだんだん暗くし、画面が切り替わったあとだんだん明るくするというのをやりたいのですが、思うようにできません。

質問は
alpha値を使って画面全体をだんだん暗くする&明るく(元通りに)したい
です

小一時間googleを使って調べてみたのですが、合いませんでした

・blackBoardを使う(xmlのみで記述するやつ)
→多機種に対応したいため画面サイズに依存する方法は無理(巨大な画像を使えばいいじゃないというのは変)

・表示している画像それぞれにalpha値を適用する(android.view.animation.Animationとその仲間)
http://cleanings.jp/develop/2807
→目的のものと違うし、すべての画面に一括で適用したい(画像単体でアニメーションしたいわけではない)


やりたいことは、画面全体のalpha値か、明度を操作(アニメーションまでしてくれると嬉しい)することで、
理想は、

コード:

Intent intent = new Intent();
intent.setClassName("com.example.packagename", "com.example.packagename.classname");
startActivity(intent);
するだけでxmlで設定されたアニメーションで画面が勝手に暗くなっていき、その後明るくなっていく事です。

http://metalmegane.blogspot.jp/2010/10/android.html
↑これの背景部分がそれっぽいような違うような・・・

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#2

投稿記事 by ISLe » 10年前

水問 さんが書きました:・blackBoardを使う(xmlのみで記述するやつ)
→多機種に対応したいため画面サイズに依存する方法は無理(巨大な画像を使えばいいじゃないというのは変)
画面サイズに依存するプログラムは作成できるのですね。
変更点を指摘して差し上げますのでそれを提示してください。

ちなみに、背景に指定できるのは画像ファイルに限りません。
画像を使う場合でも、実際の画面のサイズに合わせて自動的に比率が変わります。
水問 さんが書きました:・表示している画像それぞれにalpha値を適用する(android.view.animation.Animationとその仲間)
http://cleanings.jp/develop/2807
→目的のものと違うし、すべての画面に一括で適用したい(画像単体でアニメーションしたいわけではない)
画像単体でアニメーションするプログラムは作成できるのですね。
変更点を指摘して差し上げますのでそれを提示してください。

ちなみに、AlphaAnimationはViewに対してセットするものなので、むしろどうやって画像ごとにアニメーションしているのか興味があります。
水問 さんが書きました:理想は、

コード:

Intent intent = new Intent();
intent.setClassName("com.example.packagename", "com.example.packagename.classname");
startActivity(intent);
するだけでxmlで設定されたアニメーションで画面が勝手に暗くなっていき、その後明るくなっていく事です。
アニメーションしないでActivityを切り替えるプログラムは作成できるのですね。
変更点を指摘して差し上げますのでそれを提示してください。

ちなみに、Activityの切り換え時のフェードイン・アウト効果はxmlで定義するだけで実現します。
おそらく水問さんが書かれた『xmlのみで記述するやつ』というのはそれです。


こちらでそのまま動作を確認できるシンプルなプロジェクト一式を提示していただくと、回答は速く正確になります。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#3

投稿記事 by 水問 » 10年前

ISLeさん、回答ありがとうございます
ISLe さんが書きました: ちなみに、背景に指定できるのは画像ファイルに限りません。
画像を使う場合でも、実際の画面のサイズに合わせて自動的に比率が変わります。
そうだったんですか、勉強不足でした
当初は画面サイズにあったcanvasを生成して、黒一色にしようかと思ったのですが、googleで調べていた所
負荷が重いというワードがやけにあったので避けていました
聞くついでで申し訳ないんですが、ImageButtonなども自動的に比率が変わるのでしょうか?
ISLe さんが書きました: ちなみに、AlphaAnimationはViewに対してセットするものなので、むしろどうやって画像ごとにアニメーションしているのか興味があります。
間違えました、すいません
参考サイトのほとんどが画像Viewに適用していたので画像と表現してしまいました
ISLe さんが書きました: ちなみに、Activityの切り換え時のフェードイン・アウト効果はxmlで定義するだけで実現します。
おそらく水問さんが書かれた『xmlのみで記述するやつ』というのはそれです。
[/quote][/quote]

ほんとうですか、それはよかった・・・
プロジェクトは手元にないので、製作時に参考にしたページを貼ります
http://techbooster.jpn.org/andriod/resource/3128/

といっても、親ページから子ページに遷移するときの開き方と閉じ方、
子ページから親ページに戻るときの開き方と閉じ方の4つのxmlを定義して
マニフェストで関連付ける方法なんですが、Android開発を初めてまだ数日なので属性をはっきりと理解はしていません

このコードは、横方向にアニメーション遷移するやりかただと思うので
fromXDeltaやtoXDeltaなどの属性を削除して透明度上げていけば、
「段々暗くなる」を再現できるのではないかと予想しています

act_open_enter_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<!--Activity1のフェードアウトのアニメーション-->
<set xmlns:android="http://schemas.android.com/apk/res/android</a>"
android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="100%"
android:toXDelta="0%"
android:duration="300"
android:fillAfter="true"
android:fillEnabled="true"/>
</set>
act_open_exit_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<!--Activity2のフェードインのアニメーション-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="0%"
android:toXDelta="-100%"
android:duration="300"
android:fillAfter="true"
android:fillEnabled="true"/>
</set>
act_close_enter_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<!--Activity1がフェードアウトから戻ってくる場合のアニメーション-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
 android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="-100%"
 android:toXDelta="0%"
 android:duration="300"
 android:fillAfter="true"
 android:fillEnabled="true"/>
</set>
act_close_exit_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<!--Activity2の終了時のアニメーション-->
<set xmlns:android=http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="0%"
android:toXDelta="100%"
android:duration="300"
android:fillAfter="true"
android:fillEnabled="true"/>
</set>

あと、答えて頂いた手前言い難いのですが、妙に刺々しい文章です
此方に至らない点がありましたらご指摘お願いします。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#4

投稿記事 by ISLe » 10年前

水問 さんが書きました:聞くついでで申し訳ないんですが、ImageButtonなども自動的に比率が変わるのでしょうか?
解像度に依存しない単位でコンポーネントのサイズ指定を行えば自動的にサイズが変わるはずです。
Android SDKで画面サイズの異なる仮想デバイスを作成して試してみれば分かることではないでしょうか。
水問 さんが書きました:当初は画面サイズにあったcanvasを生成して、黒一色にしようかと思ったのですが、googleで調べていた所
負荷が重いというワードがやけにあったので避けていました
例えばViewの一部だけを処理したい場合、その部分を半透明で塗りつぶすだけで済むはずです。
その程度で負荷が問題になるのかどうかは試してみれば分かることではないでしょうか。
水問 さんが書きました:ほんとうですか、それはよかった・・・
プロジェクトは手元にないので、製作時に参考にしたページを貼ります
http://techbooster.jpn.org/andriod/resource/3128/
そのページに、透明度を変化させるアニメーション(を含むアニメーション各種)の使い方が書かれたページヘのリンクが含まれています。

水問 さんが書きました:あと、答えて頂いた手前言い難いのですが、妙に刺々しい文章です
此方に至らない点がありましたらご指摘お願いします。
まったく手を付けずに感想を書かれているだけに見えましたので、実際に動作確認することや回答を得やすくするために必要なことをことさら強調しておすすめしました。

他のサイトの情報に対して水問さんの感想を元に意見を述べるわけにはいきませんので、実質『blackBoard』しか情報のない方法も情報ソースを探し、可能な限り検証した上で意見を述べさせていただいています。
ですがそれは、水問さんの、感想に対する意見であって、質問への回答ではないので余談としました。

質問(なのか分からないもの)の、したい、に対する回答として、できる、ということは分かっていただけたのではないかと思います。

水問さん自身による問いに対してバランスを取って回答しているつもりです。
質問文に含まれる水問さん自身の問いの分量がわずかなので、こちらもそれに応じた回答をしております。
刺々しいと感じられるのはそれが原因ではないかと思います。
ここは相互扶助の場と思っています。こちらから過剰にサービスするつもりはありませんのでご了承ください。


ちなみに、引用や転載の要件を満たさず、他人の著作物を複製する行為は違法です。
違法コピーは親告罪ですが、この掲示板のルールで禁止されている行為です。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#5

投稿記事 by 水問 » 10年前

色々調べ、それぞれ検討して試した後に質問しました、という事を主張したかったのですが、
要点だけまとめようとして裏目にでてしまいました、申し訳ありません。
(ただ、感想と表現されるとはちょっと予想していませんでしたがw)
そのページに、透明度を変化させるアニメーション(を含むアニメーション各種)の使い方が書かれたページヘのリンクが含まれています。
失礼しました、見落としていました。
画像の引き伸ばしの件とあわせ、黒い画像を描画領域いっぱいに引き伸ばした状態でActivityを透明化していく方向でいくばくか試して見たいと思います。
ここは相互扶助の場と思っています。こちらから過剰にサービスするつもりはありませんのでご了承ください。
なるほど、では回答者の方々に回答をしていただくには質問者としてどのような扶助を行えばよいでしょうか?
他の方々の質問トピックに私の知識で回答した後、質問をしてくださいということでしょうか?
私がこの場で扶助できる事は何でしょうか?
ちなみに、引用や転載の要件を満たさず、他人の著作物を複製する行為は違法です。
違法コピーは親告罪ですが、この掲示板のルールで禁止されている行為です。
これは失礼しました。
確かサンプルコードにも著作権があると聞いたことがあります。
今後他所サイト様からの引用は控えたいと思います。

ただ、既に投稿してしまったURLやコードは此方で編集できません。
管理者への問い合わせフォームが無いので、お手数ですが閲覧してくださった管理者の方は修正していただけないでしょうか

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#6

投稿記事 by ISLe » 10年前

水問 さんが書きました:なるほど、では回答者の方々に回答をしていただくには質問者としてどのような扶助を行えばよいでしょうか?
他の方々の質問トピックに私の知識で回答した後、質問をしてくださいということでしょうか?
私がこの場で扶助できる事は何でしょうか?
先の投稿において同じ文体で繰り返し書いたのですが伝わりませんでしたでしょうか。
水問さんが試しに書いたプログラム一式を提示してください、ということです。
試したあとに質問したのであれば手元にあるコードをコピペするだけで済むことではないでしょうか。
水問 さんが書きました:確かサンプルコードにも著作権があると聞いたことがあります。
今後他所サイト様からの引用は控えたいと思います。
引用は著作憲法で認められた行為です。
水問さんが行ったのはいわゆる無断転載というものです。
きちんと区別してください。

水問 さんが書きました:画像の引き伸ばしの件とあわせ、黒い画像を描画領域いっぱいに引き伸ばした状態でActivityを透明化していく方向でいくばくか試して見たいと思います。
ActivityやViewの切り替えに画像は必要ないという旨の回答はしたつもりですが。
自前で塗りつぶす必要があるのはViewの一部を処理したい場合などと断りも入れてます。
どうしてあわせてしまうのですか?
水問さんのやりたいことが明確ではないので、提示された情報にそって複数の方法を提案しているのです。
取捨選択してください。

水門

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#7

投稿記事 by 水門 » 10年前

遅くなり申し訳ありません、これが試したコードです
色々いじって現在のものになります
開発環境は家にないのでまたコードを試す際には遅くなるかもしれません
引用は著作憲法で認められた行為です。
水問さんが行ったのはいわゆる無断転載というものです。
きちんと区別してください。
webページから無断でコピペしてくるのが無断転載で、
webページ上にその手の記述があってコピペしてくるのが引用でしょうか?
明記してあるサイトは少なさそうで、骨が折れますね・・・
ActivityやViewの切り替えに画像は必要ないという旨の回答はしたつもりですが。
自前で塗りつぶす必要があるのはViewの一部を処理したい場合などと断りも入れてます。
どうしてあわせてしまうのですか?
水問さんのやりたいことが明確ではないので、提示された情報にそって複数の方法を提案しているのです。
取捨選択してください。
透明度のイメージは
----------------------------------------------------------
────────遷移───────→
[────真っ黒な背景 0%───]
[act1_0~100%]
          [act2_100~0%]
----------------------------------------------------------
こんな感じで、画面が一度暗転して次の画面が表示されていく、というものです


現状の下記のコードでは、透明になったりこそするものの、
2秒間ブワブワ画面を往復しているように点滅します

style.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>

    <style name="AppTheme" parent="AppBaseTheme">
    </style>

    <drawable name="translucent_background">#FFFFFF</drawable>
    
    <style name="Animation.Activity" parent="android:Animation.Activity">
        <item name="android:windowBackground">@drawable/translucent_background</item>
		<item name="android:activityOpenEnterAnimation">@anim/act_open_enter_anim</item>
		<item name="android:activityOpenExitAnimation">@anim/act_open_exit_anim</item>
		<item name="android:activityCloseExitAnimation">@anim/act_close_exit_anim</item>
		<item name="android:activityCloseEnterAnimation">@anim/act_close_enter_anim</item>
	</style>

</resources>
style.xmlではバックグラウンドに#FFFFFFを設定し、4つのアニメーションに後述のアニメーションを適用しています
※一応自分の開発環境からコピーしています

themes.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TranceAnim" parent="android:Theme">
	<item name="android:windowAnimationStyle">@style/Animation.Activity</item>
	</style>
</resources>
act_open_enter_anim.xml
透明度0から透明度100へ2000msかけて移行します

コード:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="0" 
    android:toAlpha="100" 
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>
act_open_exit_anim.xml
透明度100から透明度0へ2000msかけて移行します

コード:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="100"
    android:toAlpha="0"
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>
act_close_exit_anim.xml
透明度0から透明度100へ2000msかけて移行します

コード:

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="0"
    android:toAlpha="100"
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>
act_close_enter_anim.xml
透明度100から透明度0へ2000msかけて移行します

コード:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="100"
    android:toAlpha="0"
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#8

投稿記事 by ISLe » 10年前

水門 さんが書きました:webページから無断でコピペしてくるのが無断転載で、
webページ上にその手の記述があってコピペしてくるのが引用でしょうか?
明記してあるサイトは少なさそうで、骨が折れますね・・・
引用には引用と認められるための要件があります。
要件を満たせば許可は必要ありません。
『引用』で検索すれば著作権とともに解説されたページがたくさん見付かるはずです。
水門 さんが書きました:現状の下記のコードでは、透明になったりこそするものの、
2秒間ブワブワ画面を往復しているように点滅します
android:fromAlpha要素とandroid:toAlpha要素に設定する値はfloatです。
水門さんが製作時に参考にしたというページからリンクされたページにも説明があります。
値は不透明度で、0.0が完全な透明です。逆にしないよう注意してください。


ところで、この方法は、水門さんが最初に、目的に合わないと否定された方法でもあるのですが、問題ないのでしょうか。
水門さんが理想だとしている内容が本当に正しく水門さんのやりたいことなのかどうかという点においても確信を得ません。


あと、名前が変わってますね。
頻繁に名前を変えると掲示板のルール違反になりますので統一してください。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#9

投稿記事 by 水問 » 10年前

android:fromAlpha要素とandroid:toAlpha要素に設定する値はfloatです。
水門さんが製作時に参考にしたというページからリンクされたページにも説明があります。
値は不透明度で、0.0が完全な透明です。逆にしないよう注意してください。
ありがとうございます、試してみます


>ところで、この方法は、水門さんが最初に、目的に合わないと否定された方法でもあるのですが、問題ないのでしょうか。
なんの話ですか?

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#10

投稿記事 by ISLe » 10年前

水問 さんが書きました:>ところで、この方法は、水門さんが最初に、目的に合わないと否定された方法でもあるのですが、問題ないのでしょうか。
なんの話ですか?
最初の質問文で、水問さんは以下のように書いています。
水問 さんが書きました:小一時間googleを使って調べてみたのですが、合いませんでした

・blackBoardを使う(xmlのみで記述するやつ)
→多機種に対応したいため画面サイズに依存する方法は無理(巨大な画像を使えばいいじゃないというのは変)

・表示している画像それぞれにalpha値を適用する(android.view.animation.Animationとその仲間)
http://cleanings.jp/develop/2807
→目的のものと違うし、すべての画面に一括で適用したい(画像単体でアニメーションしたいわけではない)
記述法の違いではなく、機能という点で目的に合わないと書かれています。
いま現在使っている機能はこれらで解説されているのと同じものです。
否定したままで平気なのは、相手の名誉を傷付けることにいささかのためらいもない、ということでしょうか。
ISLe さんが書きました:ちなみに、Activityの切り換え時のフェードイン・アウト効果はxmlで定義するだけで実現します。
おそらく水問さんが書かれた『xmlのみで記述するやつ』というのはそれです。
このように最初の回答でわたしは、おそらく、水問さんの理想を実現する方法は、水問さんが予め否定した方法だ、と書いております。

同じ内容の提案をしても否定されるでしょうから、矛盾を解決するのが先決だとわたしは考えました。
きちんと訂正されなければ、このトピックを公開しているサイトが名誉を傷付けていることになりますからね。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#11

投稿記事 by 水問 » 10年前

おっしゃっているのは
>表示している画像それぞれにalpha値を適用する
というところでしょうか?

これは文面通り、「画像の透明化」に対しての否定です。
使用するのはActivityを画面遷移時に透明化する処理です。
リンク先で解説している機能と違うのではありませんか?

xmlだけで記述されているという事にのみ焦点を当ててもらっても困ります。
ちなみに、Activityの切り換え時のフェードイン・アウト効果はxmlで定義するだけで実現します。
おそらく水問さんが書かれた『xmlのみで記述するやつ』というのはそれです。
という文章がそれだと主張されていますが、同時に
水問さん自身による問いに対してバランスを取って回答しているつもりです。
質問文に含まれる水問さん自身の問いの分量がわずかなので、こちらもそれに応じた回答をしております。
という曖昧で情報を絞った回答ではどこを指摘しているのかすらわかりません。

そのような主張をされるなら、コードを直接書かずとも、
「xmlにTrancelateタグと同じようなalphaタグというものがあるので、それを利用してください」
ぐらいは具体的に言って欲しいです。
後から「あぁ、これの話だったのね」という伏線でしかありません。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#12

投稿記事 by ISLe » 10年前

申し訳ありませんが、プログラミングのできる方であればもう少し論理的に日本語を使っていただくことはできませんか。
水問 さんが書きました:おっしゃっているのは
>表示している画像それぞれにalpha値を適用する
というところでしょうか?
わたしが引用した部分にアルファ値に言及している箇所はありませんが、どうしてそう思われたのでしょうか。
水問 さんが書きました:これは文面通り、「画像の透明化」に対しての否定です。
使用するのはActivityを画面遷移時に透明化する処理です。
リンク先で解説している機能と違うのではありませんか?

xmlだけで記述されているという事にのみ焦点を当ててもらっても困ります。
わたしが引用した部分はxmlを使用しないで実装する方法にも言及していますが、どうしてそう思われたのでしょうか。
水問 さんが書きました:そのような主張をされるなら、コードを直接書かずとも、
「xmlにTrancelateタグと同じようなalphaタグというものがあるので、それを利用してください」
ぐらいは具体的に言って欲しいです。
後から「あぁ、これの話だったのね」という伏線でしかありません。
ですから、alphaタグを使用しているサンプルコードも水問さん自身で否定しているのではないですか、という話をしています。

『blackBoardを使う(xmlのみで記述するやつ)』があったのはどこですか。
具体的に教えていただけませんか。

わたしがblackBoardというキーワードで探して見付けたのと同じであれば、そこでalplaタグが使用されています。
無関係かもしれないので、わたしから具体的にページを示すことはしません。


いままでのわたしの回答は水問さんが調べた情報に対して補足しているのではありません。
水問さんが調べたというページにもとから書かれていることをそのまま伝えているだけです。
伏線を張ったのは水問さん自身ですよ。
わたしは伏線を回収するのに必要な作業をしているだけです。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#13

投稿記事 by 水問 » 10年前

わたしが引用した部分にアルファ値に言及している箇所はありませんが、どうしてそう思われたのでしょうか。
わたしが引用した部分はxmlを使用しないで実装する方法にも言及していますが、どうしてそう思われたのでしょうか。
私がNo: 7のレスでxmlでalpha値を使用してフェードイン・アウトの効果を再現するコードを書きました。
その直後のNo: 8のレスで
ISLe さんが書きました:ちなみに、Activityの切り換え時のフェードイン・アウト効果はxmlで定義するだけで実現します。
おそらく水問さんが書かれた『xmlのみで記述するやつ』というのはそれです。
このように最初の回答でわたしは、おそらく、水問さんの理想を実現する方法は、水問さんが予め否定した方法だ、と書いております。
と仰っていたのでxml/alphaのコードに対して返信したものだと考えていたのですが、関係ない話をしていたということですか

『blackBoardを使う(xmlのみで記述するやつ)』があったのはどこですか。
具体的に教えていただけませんか。
すいません、一週間分しかとってなくて見つからないです。


デフォルトで入っているアニメーションだと

コード:

        <item name="android:activityOpenEnterAnimation">@android:anim/fade_in</item>
        <item name="android:activityOpenExitAnimation">@android:anim/fade_out</item>
        <item name="android:activityCloseEnterAnimation">@android:anim/fade_out</item>
        <item name="android:activityCloseExitAnimation">@android:anim/fade_in</item>
がすごく近いんですが、いかんせん画面の遷移時間が短く、「暗転」が再現できません。

以前のコードは、指摘された所を直し不透明度で数値を入れ替え、0~100だったのを0.0~0.1にしました。
ですが、duration=2000msとすると、やはり画面が2秒間点滅してしまいます。
No:1でも言いましたが、しっかり要件を書くと最終的には1秒掛けて暗くなっていき、暗くて何も見えなくなったところから1秒かけて明るくなって次の画面が現れるというのがやりたいです。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#14

投稿記事 by 水問 » 10年前

すいません、(ブラウザの履歴を)一週間分しかとってなくて見つからないです。
訂正です

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#15

投稿記事 by ISLe » 10年前

水問 さんが書きました:と仰っていたのでxml/alphaのコードに対して返信したものだと考えていたのですが、関係ない話をしていたということですか
その方法は、水問さん自身が
水問 さんが書きました:小一時間googleを使って調べてみたのですが、合いませんでした
と書かれた中にあったのと機能としては同じものですが、その点についてはどうなのですか?とお尋ねしているのです。
関係ないなんてとんでもない。
水問 さんが書きました:すいません、(ブラウザの履歴を)一週間分しかとってなくて見つからないです。
もう一度、小一時間googleを使って調べてみたら見付かるのではないでしょうか。
水問 さんが書きました:以前のコードは、指摘された所を直し不透明度で数値を入れ替え、0~100だったのを0.0~0.1にしました。
ですが、duration=2000msとすると、やはり画面が2秒間点滅してしまいます。
画面が2秒間点滅するプログラムは作成したのですね。
でしたらそれを提示してください。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#16

投稿記事 by 水問 » 10年前

>画面が2秒間点滅するプログラムは作成したのですね。
>でしたらそれを提示してください。

此方がそのプログラムです。
以前のコードは、指摘された所を直し不透明度で数値を入れ替え、0~100だったのを0.0~0.1にしました。
android:interpolator=の部分は、継承?されているのか動作がよくわかりません。
translate句をオーバーライド?していないので、C++とかだったらそのまま引き継がれるような、と予想してたんですが、やっぱりxmlは勝手が違いますね・・・(set句で引き継がれてるのかな?
そもそも継承じゃないのかも。
あ、この流れだとまた自分で確認してくださいと言われますね。


style.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>

    <style name="AppTheme" parent="AppBaseTheme">
    </style>

   
    <style name="Animation.Activity" parent="android:Animation.Activity">
	<item name="android:activityOpenEnterAnimation">@anim/act_open_enter_anim</item>
	<item name="android:activityOpenExitAnimation">@anim/act_open_exit_anim</item>
	<item name="android:activityCloseExitAnimation">@anim/act_close_exit_anim</item>
	<item name="android:activityCloseEnterAnimation">@anim/act_close_enter_anim</item>
  </style>

</resources>
themes.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TranceAnim" parent="android:Theme">
	<item name="android:windowAnimationStyle">@style/Animation.Activity</item>
	</style>
</resources>
act_open_enter_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="1.0" 
    android:toAlpha="0.0" 
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>
act_open_exit_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>
act_close_exit_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>
act_close_enter_anim.xml

コード:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="2000"
    android:fillAfter="true"
	android:fillEnabled="true"
    />
</set>

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#17

投稿記事 by ISLe » 10年前

水問 さんが書きました:此方がそのプログラムです。
水問さんの開発環境ではxmlだけで動作確認できるのかもしれませんが、こちらでは実行形式を作らないと動作確認できないので勝手に作らせていただきました。

Android SDK+Eclipse ADTで2つのActivityを画面のタッチで切り替えるだけのアプリを作りました。
提示されたコード以外には、Activity本体のJavaソースコードとレイアウトxmlの作成変更、AndroidManifest.xmlへアニメーション設定を行いました。

提示されたコードそのままではコンパイルエラーになるのでそれを修正しました。

作成された実行形式をSDKの仮想デバイスで動かしたところ、透明度が逆ですが指定した時間で滑らかに変化しました。
画面が2秒間点滅するという現象は再現しませんでした。

こちらの説明不足だったかもしれませんが、『Activityの不透明度』として、値を入れ替え、暗転が滑らかに繋がることも確認しました。


こちらから見えないところで水問さんがどんなミスをしているのか知りません。
自らのミスや勘違いの責任を他人に押し付けるのはやめていただけませんか。

わたしはバランスを取って回答していると書きましたよね。
押し付けられた分は相応にしてお返ししますよ。
水問さんが態度を改めないのであれば次はありませんのでそのつもりで。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#18

投稿記事 by ISLe » 10年前

補足しておきますと、android:fromAlphaとandroid:toAlphaの属性値が0~100だと画面が激しく点滅します。
水問 さんが書きました:>画面が2秒間点滅するプログラムは作成したのですね。
>でしたらそれを提示してください。

此方がそのプログラムです。
以前のコードは、指摘された所を直し不透明度で数値を入れ替え、0~100だったのを0.0~0.1にしました。
水問さんはデバイスで動かしていないのを試したとおっしゃるのですかね。
水問 さんが書きました:あ、この流れだとまた自分で確認してくださいと言われますね。
そうですね。
水問さんはちゃんとデバイス上で動いていることを確認されたのですかね。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#19

投稿記事 by 水問 » 10年前

ISLe さんが書きました: こちらから見えないところで水問さんがどんなミスをしているのか知りません。
自らのミスや勘違いの責任を他人に押し付けるのはやめていただけませんか。

わたしはバランスを取って回答していると書きましたよね。
押し付けられた分は相応にしてお返ししますよ。
水問さんが態度を改めないのであれば次はありませんのでそのつもりで。
自分のプロジェクトの不具合を解決しようとトピックに質問を投稿したのですが、
私が責任転嫁していたように見えたなら、申し訳ありません。
許していただけないかもしれませんが、そんなつもりはなかったということだけでもご理解頂けたらと思います。

また、そんな私のために動作確認までして頂いてありがとうございます。


動作環境をIDEごと持ち帰ってきたので、家のPCで
>こちらでそのまま動作を確認できるシンプルなプロジェクト一式を提示していただくと、回答は速く正確になります。
の、シンプルなプロジェクトを作ってみました。

その結果、しっかりフェードイン・アウトがされていました。(フェードの方向はおかしかったですが)
xmlの部分は元ソースコードからコピペにも関わらず、挙動が変わっていました。

消去法でアクティビティの部分が悪いのかと考えたのですが、アクティビティのメソッドをコピペしても正常にフェードイン・アウトしています。
javaのコード以外での問題なのかもわかりません・・・。

問題の画面遷移がうまくフェードしてくれないプロジェクト(全部)
http://www1.axfc.net/u/3123789.zip?key=dxlib
コード自体はおそらく一緒だけど正常に動くプロジェクト(全部)
http://www1.axfc.net/u/3123794.zip?key=dxlib

すいません、デバイスは、Android端末を持っていないので仮想端末で開発してます。
実機で動いてることは確認できていません。

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#20

投稿記事 by 水問 » 10年前

プロジェクトのデバッグを押し付けるのもよくないですね、すいません・・・

水問

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#21

投稿記事 by 水問 » 10年前

できました!!

過去のゴミファイルがエラーを出している時があるという情報を見かけて、
Eclipseのメニューバーのプロジェクト→クリーン
ソリューションエクスプローラのプロジェクト→リフレッシュ
をして実行してみたところ、うまくフェードしてくれました!!

まさか環境側に問題があったとは・・・


困ったときはまず試して、デバッグして、クリーンとリフレッシュをして、それでもエラーが出てわからないようでしたら
今後はしっかり背景の説明文を形成した上で質問したいと思います。
ISLeさん、私が失礼な事を言っていたのに最後までお付き合いしてくださり本当にありがとうございました!

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: Androidの画面遷移をフェードイン・フェードアウトでアニメーションしたい

#22

投稿記事 by ISLe » 10年前

うまく動いたようで良かったです。

『エラーは出ていないのに』期待どおり動かない、とおっしゃってくださっていたら、リフレッシュを試していただくことをお勧めできたかもしれません。

むしろこちらからエラーは出てないですかと尋ねるべきだったかもしれません。
ムキになってあえて基本的な指摘をしないようになっていたようです。

こちらこそ失礼しました。

閉鎖

“C言語何でも質問掲示板” へ戻る