忍者ブログ
2025 01
≪ 2024 12 1 2 3 45 6 7 8 9 10 1112 13 14 15 16 17 1819 20 21 22 23 24 2526 27 28 29 30 31 2025 02 ≫


*admin*entry*file*plugin| 文字サイズ  

PC系スポンサーリンク







12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
[10/01 mz]
[10/01 天ノ川きらら]
[02/19 mz]
[02/18 天ノ川きらら]
[01/02 mz]
HN: 新堂 瑞樹, mz
性別: 男性
自己紹介:
健康第一

千葉市内一部地域を対象に出張整体やってます
仔細はコチラをご参照あれ

すかいぷ: mizuki_zero
予約等はこちらからも受け付けております
*付きは必須項目です
の記事一覧

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。




mzは がめんせんい をおぼえた!

つうわけでandroidにおける画面遷移ですね

 Main以外のActivity作って、それのIntent作ってstartActivity()するだけね。
Intent intent = new Intent(getBaseContext(), YourActivity.class);
startActivity(intent);
 こんな感じね。そこいらでソース探すとコンストラクタにthis渡してるのばかりなんだが、最近仕様が変わったのかしらん?(うちのコード設計上こうなってるだけかも)

 finish()を実行すればスパッと親元Activityに戻れる。
 Activity間でデータのやりとりしたいときは、基本最初の遷移時と同じ要領で
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("DataLabel", data);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
 こんなん。
 SINGLE_TOPフラグ指定により新規Activity作成(既存のは消される)ではなく、既存Activity再利用となり、onCreate()が実行されない点に留意されたい。このほうがパフォーマンス的によかろうぞ。
 また、作成したActivityをも再利用するのであればCLEAR_TOP(他のActivity全消去)せず再利用時にSINGLE_TOP指定で遷移するのがよいかと思われる、実際組んでないんで動くかどーかしらんけど。あと初期化が必要かどーかにもよるね。
 putExtraで置いたデータを受け取るときは、
Intent intent = getIntent();
data = intent.getIntExtra("DataLabel", 0);
 こんなん。受け取るデータが存在しない場合は第二引数のゼロが返る。
 送り元と受け取りのデータ型は揃えよう。当たり前体操。

拍手

PR



アプリ作り経過



 こーゆー感じでカードを動かすのに22のImageViewを要するわけだが……メモリ的に無駄に重くなかろか。上からパラパラーッとカードが落ちてきてる感じで以降はまとめて動かす感じ。
 画像のパラパラ部分の音だけは実装した。あとは占い内容と猫占い師のアイコン絵とちゃんとしたタロット絵(できれば裏の模様も)があればおっけーですわ。やりたいことはもっとあるが占いとしてはそれで完成にできる。

拍手




android: RotateAnimationがうまくいかなかった件

結論からいうと
onCreate()内でView.getWidht()ならびにView.getHeight()してたのが悪かった
 ということになる。

 画像の中心を中心に、風車みたいに回したかったんですよ。それがなぜか中心点がズレて画像がスウィングされまくってたもんでなんでじゃいーと各数値を調べてみたら、↑で書いた値の取得が0だったわけだ。

RotateAnimation ra = new RotateAnimation(0, 360,
img.getX() + img.getWidth() / 2, img.getY() + img.getHeight() / 2);

 みたいなことをやったところでゼロを2で割ってるに過ぎない。危なっかしいったらない。ImageViewならまだ取得できそうなもんだけどな、うぅむ。

 幅と高さの取得が有効なブロックで実行すればうまくいくであろうし、他の手段で回転の中心点を指定してやってもうまくいく。なんというか、こんなんで躓くのはガッカリだね。

 あと回転させながら移動とか、アニメーションの組み合わせにはAnimationSetを使うが、風車式の回転と移動を併用するには回転を先にaddAnimation()する必要がある様子。

拍手