第3回 iOSとAndroidで似た画面を作る方法!
iOSとAndroidの画面を似せて行きます。
まず、Androidの上部のバー(タイトルバーであってる?)・・・
邪道なんでしょうが、
public class MainActivity extends AppCompatActivity {
を
public class MainActivity extends Activity {
に変えてやります。
そして、画面の色も同じに。
前回のプログラムでiOSでは、AppDelegate.swiftの中で
self.window?.backgroundColor = UIColor(red: 1, green: 1, blue: 0.6, alpha: 1)
と色指定しています。
Androidで同じ画面の色にするためにMainLayout.javaのコンストラクタ内に
this.setBackgroundColor(Color.argb(255,255,255,153));
としています。
ここまでで、iOSとAndroidの見た目は似てきたのではないでしょうか。
上下の機種独特な部分はこのままにしておきます。
iOSでは、AppDelegate.swiftから(ビューコントローラ)へ
Androidでは MainActivity.javaから(リラティブレイアウト )へ
制御を移すことによって、同じ構造のアプリ作りができそうです。
例えば(ビューコントローラ)を gameController.swift
(リラティブレイアウト )を gameController.java
というようにすれば、クラスの構築をかなり近いものにできます。
「なぜ、リラティブレイアウト?」
参考書には、リニアレイアウトばかりです。
自由度の高さと移植性を考えて私は専らリラティブレイアウト。
位置を決めて描画するには楽なんです!!次回やって見ますね。
(実はリニアレイアウトは使ったこともない・・・というのが真相)
ところで、一番困るのが、単位が違うこと。
swiftでは画面関係はほとんど、CGFloatという単位を使い、javaではint。
カラー指定もこの単位を使うので、白を表す場合なら
swiftでは UIColor(red: 1, green: 1, blue: 1, alpha: 1)
javaでは Color.argb(255,255,255,255)
(UIColor.white使えば?って突っ込まないでね。)
swiftでは0〜1の小数、javaでは0〜255の整数。
フェードアウトするときには、alphaを変化させたりするのでAndroidで結構大変です。
どうしてこんなに違いがあるのって聞いても始まらないので、とにかく頑張ってプログラミング。
あ、申し遅れましたが、プログラミングは三度の飯の次に好きなものです。はい。