2018-05-01から1ヶ月間の記事一覧
第20回で、setMarginsが使えない。みたいなことを書きましたが、凡ミスでした。setPadding も setMargins もちゃんとあるのですが、どこか見つけられなかっただけと言うお粗末な結論です。しかし、これは、きちんと書き留めなければいけないと言うことで、書…
アプリの画面が少しだけ前に進んでいます。 懸案だった横に長い氏名表示域を短くし、右側にエントリーされた選手名を表示するようにしました。 注目すべきは、タップした順に出場者が表示されている事で、なんとこれは自然になってしまったというjava の仕様…
何をしてるのか・・・ しかし、かっこいいから、時間を忘れてプログラムを改造中。元のプログラム。 if (entry) { setBackgroundColor(Color.argb(255,255,255,30)); } else { setBackgroundColor(Color.argb(255,200,200,200)); } こうなりました。 if (ent…
今まであんまり使ったことのない static キーワード。何かカウントするときとか便利だよ〜とかって、それくらいの知識だけで。 でも、これって、インスタンス作らんでも使えるやんってことで、ビューを作る情報が散乱してるのを集めてみることにしました。 i…
アプリ作る時って、やっぱりアプリ設定ファイルは作るんですよね? いい方法があるのかもしれないですが、私の場合は、settings クラスを作って、そこにアクセスして作っています。これが簡単な気がする。 なぜ、こんな話になっているとというと、とってもま…
スクロールビューに名前の入ったビューアイテムが乗っています。スクロールビューのタッチイベントは嫌なので、このビューアイテムにタッチイベントをセットすることにしました。私は、アマプログラマーなので、やれることだけしかしません。できるだけ難し…
ちょっと苦戦します。スクロールビューのタッチイベントの扱いって難しいですね。話は、少し前になりますが、Androidのスクロールビューは単一のレーアウトにまとめてのせるしか方法がなかったので、iOSとは同じ書き方ができませんでした。Androidの方にひと…
この連載を読んでいただき、ありがとうございます。「大発見やー」と自画自賛していることを書いてみたいと思いますが、もしかしたらそんなのは当たり前のことなのかもしれません。プロのプログラマーは隠してるんじゃないの?みたいに思えてきますが。まず…
前回、Runner クラスが便利そうだと書きましたが、進めているうちに、Runner クラスを統括していく、Team クラスがあるといいなと思いつき(私は常に思いつきでプログラムする・・・)、Team クラスを書いてみました。Androidの記録方法、SharedPreferences…
スクロールビューまで来て、はたと困りました。なぜなら、思いつくままにプログラムを書く癖があるので、後になってここはどうしようかと考えてしまうから。で、困った原因はというと、Runnerクラスってこのアプリの中心的存在なのに、いちいち消したり、フ…
ちょっと、イベントがあり、留守にしてました。 早速ですが、続きで、スクロールビューの設置。Android版で注意するべきことが一つあり、スクロールビューにのせることができるのは一つのオブジェクトになっているということです。なので、中に入れるレイア…
スクロールビューって、利用しない手はないのに、なかなかいいサンプルにお目にかかりません。ぜひぜひ参考にしてください。結構、教科書的に書けたように思います。プログラムは3つの部分に分かれます。 A:スクロールビューを呼び出すプログラム B:スク…
ボタンを貼り付けました。 と言っても、見た目だけです。 なぜかというと、以前はあったはずのsetMarginが出てこない。Viewを生成し、setMerginを使おうとしても出てこない・・・謎。 今回、左ボタンは、左側のマージンを指定、右ボタンは、右側のマージン指…
swift で ボタンを作ってみます。 // UIButton 2個、「メニューに戻る」「奏者選択終了」 // ボタンのサイズは共通 let buttonSize: CGSize = CGSize(width: myWidth*0.4, height: myWidth*0.1) let cancelButtonPoint: CGPoint = CGPoint(x: myWidth*0.07, …
iOSでUILabelを使ったことは、AndroidではTextViewでやるといいようです。 氏名の入力で使うことになる予定ですが、テキストの入力は、iOSではUITextView、Androidでは、EditTextというクラスを使うようです。この辺りはなるべくシンプルにいきたいです。で…
ソースコードをすべてアップしてませんが、前回までで、メインメニューと4つの画面の行き来ができるようになっています。私のブログを読んでくださっている方の中には、プログラム精通者も入れば、初心者の方もいると思いますし、若い方も、ご年配の方もい…
前回は、swiftでクロージャを使って画面遷移をしましたが、javaでは、Runnableを使うと同じようなことができます。前回の繰り返しですが、1.呼び出される側に、ランナブル変数を置く。 2.呼び出し側から、このランナブルに「どこに制御が移るか」を教え…
よくわからないんです。 初心者にとっては絶壁に登るような感覚ですよね?なので、初心者目線で、説明して見ます。クロージャというのは、「次にここから実行してね。」と伝える手段という見方でいいと思います。 あるエリアがタップされたら、次は(同じク…
現在のビューコントローラーはこんな感じになっています。 ビューをフルサイズにしているのに、センターで位置決めしているのがちょっと不思議な感じですが、フルサイズ以外を選択したときはこの方が都合がいいので、このままにしておきます。 class Entranc…
Swift と Java。全然似てないのに、共通なプログラミングをしようとする試みは、無謀? そう思いつつも、さらっとやってみようという、このブログであります。はい。で、今回は、イベント処理なんですが、基本的に、ビュー(UIView & View)のclassの中に書…
タイトル文字を入れました。 2行のタイトルですが、センター上部に入れる文字ということで、共通の処理を行うために関数を作って呼ぶようにしています。 上下の位置調整は、呼び出す側の引数のcenterで行うようにしました。 これだと、swiftでは左上が起点…
前回、トラックの位置が微妙に違うと気づいていて、そのまま、記事を乗せてしまいましたが、原因がつかめました!これまた、お恥ずかしい話なんですが。 // トラックの描画 float r = 0.19f; while (r<0.28f) { r += 0.02f; track(width * r, canvas); } こ…
NSStringのメソッドを調べていたら、ありましたね。NSString.size(withAttributes: NSAttributeStringKey : Any]) 要するに、文字属性=フォントサイズとかを決めたら、そのサイズを返してくれると言う便利なメソッドですね。 ありそうだし、「お前、そんな…
忙しさもあったんだけど、ちょっと壁にぶち当たっているというのも本当のところで。たまには、こういう、トラブっているところも報告していいんじゃないかと思っています。swiftへの移植作業を進めているのですが、現在、こんな画面に。横の2本線は、スクリ…
もとの画像のように大きな文字で、4つのメニュー文字を入れてみます。あんまり時間がなかったので、今日はAndroid版だけです。mainMenu.javaの内部関数として書いています。 void menuBigChar(String string,int width, float y, int position, Canvas canv…
先にswift版を作りましたが、Android版に移植しました。半円を描くところで少し手間取りましたが、同じようにできました。 // トラックの描画 float r = 0.19f; while (r<0.28f) { r += 0.02f; track(width * r, canvas); } } void track(float r, Canvas ca…
前回の続きです。 と言っても、少し寄り道ですが、swift でお絵描きをする方法の紹介です。 ま、あちこちにたくさん情報があるので、新しくはないですが。考えたのは、次のような直線と半円を繋いだ線を描くこと。画面のセンターから、左右に 'a' だけ離れた…
色々なTipsをご紹介するのが、このブログの最大の目標ですが、 やみくもにコードを並べても芸がないので、方向性を出してみます。3年くらい前に作ったiOSアプリをご覧ください。複数個のストップウォッチの機能を持たせたアプリです。 左側はメニュー画面。…
いやー、プログラムって本当に楽しいですね〜今日のお題は、「正方形を描く」です。 今回作って見たのは単純なものです。 見た目を合わせるために、サイズは短辺の20%としています。 もちろんこれだけであれば、ストーリーボードを使ったり、 XMLファイル…
iOSとAndroidの画面を似せて行きます。 まず、Androidの上部のバー(タイトルバーであってる?)・・・ 邪道なんでしょうが、 public class MainActivity extends AppCompatActivity { を public class MainActivity extends Activity { に変えてやります。…